如何使用 OpenCV2.0 和 Python2.6 调整图像大小

新手上路,请多包涵

我想使用 OpenCV2.0 和 Python2.6 来显示调整大小的图像。我使用并采用了 这个 示例,但不幸的是,此代码适用于 OpenCV2.1,似乎不适用于 2.0。这是我的代码:

 import os, glob
import cv

ulpath = "exampleshq/"

for infile in glob.glob( os.path.join(ulpath, "*.jpg") ):
    im = cv.LoadImage(infile)
    thumbnail = cv.CreateMat(im.rows/10, im.cols/10, cv.CV_8UC3)
    cv.Resize(im, thumbnail)
    cv.NamedWindow(infile)
    cv.ShowImage(infile, thumbnail)
    cv.WaitKey(0)
    cv.DestroyWindow(name)

由于我无法使用

cv.LoadImageM

我用了

cv.LoadImage

相反,这在其他应用程序中没有问题。然而,cv.iplimage 没有属性 rows、cols 或 size。谁能给我一个提示,如何解决这个问题?

原文由 Bastian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 445
1 个回答

如果你想使用 CV2,你需要使用 resize 函数。

例如,这会将两个轴的大小调整一半:

 small = cv2.resize(image, (0,0), fx=0.5, fy=0.5)

这会将图像调整为 100 列(宽度)和 50 行(高度):

 resized_image = cv2.resize(image, (100, 50))

另一种选择是使用 scipy 模块,方法是:

 small = scipy.misc.imresize(image, 0.5)

显然,您可以在这些函数的文档中阅读更多选项( cv2.resizescipy.misc.imresize )。


更新:

根据 SciPy 文档

imresize 在 SciPy 1.0.0 中 已弃用,并将在 1.2.0 中删除。

使用 skimage.transform.resize 代替。

请注意,如果您希望 按系数调整大小,您可能实际上需要 skimage.transform.rescale

原文由 emem 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题