如何使用 opencv-python 创建缩略图?
Posted
技术标签:
【中文标题】如何使用 opencv-python 创建缩略图?【英文标题】:How to create thumbnails using opencv-python? 【发布时间】:2015-08-31 20:58:02 【问题描述】:我正在尝试使用Python-Pillow's im.thumbnail()
方法对我的图像进行下采样(使用anti-aliasing
)。
我的代码如下:
MAXSIZE = 1024
im.thumbnail(MAXSIZE, Image.ANTIALIAS)
你能告诉我opencv-python
中的一些替代方法来执行这个重新调整大小的操作吗?
【问题讨论】:
【参考方案1】:您可以使用 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)
有不同类型的插值可用(INTER_CUBIC、INTER_NEAREST、INTER_AREA、...),但根据文档,如果您需要缩小图像,应该使用 CV_INTER_AREA 获得更好的结果。
【讨论】:
cv2.resize 会将您提供的图像调整为指定尺寸。maxsize 不是最大尺寸,它是 target 尺寸。您可以使用 python 库 imutils.resize(opencv 便利函数)。它包装了 cv2.resize 函数,以便在调整大小时保持图像纵横比,但是如果您提供的图像小于您提供的尺寸,它也会放大图像。要解决此问题,请仅在图像较大时调用它。以上是关于如何使用 opencv-python 创建缩略图?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用在 jython 上运行的 django 创建图像缩略图?