如何使用opencv-python创建缩略图?

Kau*_*ran 5 python opencv image-processing python-imaging-library

我正在尝试anti-aliasing使用Python-Pillow's im.thumbnail()方法对我的图像进行下采样(使用).

我的代码看起来像:

MAXSIZE = 1024
im.thumbnail(MAXSIZE, Image.ANTIALIAS)
Run Code Online (Sandbox Code Playgroud)

你能告诉我一些替代方法opencv-python来执行这个重新调整大小的操作吗?

Alg*_*old 5

您可以使用cv2.resize.这里的文档:http://docs.opencv.org/modules/imgproc/doc/geometric_transformations.html#resize

在您的情况下,假设输入图像im是一个numpy数组:

maxsize = (1024,1024) 
imRes = cv2.resize(im,maxsize,interpolation=cv2.CV_INTER_AREA)
Run Code Online (Sandbox Code Playgroud)

有不同类型的插值可用(INTER_CUBIC,INTER_NEAREST,INTER_AREA,...)但根据文档,如果您需要缩小图像,您应该使用CV_INTER_AREA获得更好的结果.

  • cv2.resize将调整您提供给指定尺寸的图像的大小.maxsize不是最大尺寸,它是*target*尺寸.您可以使用python库imutils.resize(opencv便捷函数).它包装cv2.resize函数,以便在调整大小时保持图像宽高比,但如果您提供的图像小于您提供的大小,它也会放大图像.要解决此问题,请仅在图像较大时调用它. (4认同)