相当于PIL大小调整大小的openCV?

alf*_*dox 4 python opencv image-resizing python-imaging-library python-2.7

在PIL中,根据我所见,最大的质量调整似乎是:

img = img.resize((n1, n2), Image.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)

对于openCV,这似乎是这样做的方法:

small = cv2.resize(image, (0,0), fx=0.5, fy=0.5) 
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,是否需要一个附加参数,或者这会以最小的质量损失来减小尺寸?

che*_*rad 5

文档中

要缩小图像,通常使用CV_INTER_AREA插值时效果最佳,而要放大图像,通常使用CV_INTER_CUBIC(速度慢)或CV_INTER_LINEAR(速度更快,但仍然可以)查看最佳。

调整大小的默认值为CV_INTER_LINEARCV_INTER_AREA由于您希望缩小图像,请将插值更改为:

small = cv2.resize(image, (0,0), fx=0.5, fy=0.5, interpolation = cv2.INTER_AREA)
Run Code Online (Sandbox Code Playgroud)

您可能希望比较两个插值的结果,以进行视觉验证,以确保获得最佳质量。

  • 我不使用 Python,但我相信代码应该是 `cv2.INTER_AREA` 而不是 `CV_INTER_AREA`。你在尝试吗? (2认同)