gpt4 book ai didi

python - OpenCV 3、python 3 'Image step is wrong' 错误

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:24 24 4
gpt4 key购买 nike

我的问题可能只是一个 Python 3 OpenCV 错误,但我不知道。我在 Windows 10 中安装了 32 位 Python 版本 3.4.3。我从这个网站安装了 OpenCV 3.0.0 32 位 http://www.lfd.uci.edu/~gohlke/pythonlibs/ (opencv_python‑3.0.0‑cp34‑none‑win32.whl)。

我还从该站点安装了 numpy 1.10.0b1 beta。

我已经使用带有 Java 的 OpenCV 测试了下面相同的基本程序流程并且它有效。出于这个原因,我认为这可能只是一个 Python 错误问题。在下面的代码中调用 drawContours 会产生此错误:

OpenCV Error: Image step is wrong (Step must be a multiple of esz1) in cv::setSize, file ......\opencv-3.0.0\modules\core\src\matrix.cpp, line 300

我使用的测试图像是 1168 x 1400 像素。

代码如下:

import cv2
import numpy as np
img = cv2.imread('test.jpg')
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, threshImg = cv2.threshold(imgray,127, 255,cv2.THRESH_BINARY)
can = cv2.Canny(threshImg,100,200)
contImg, contours, hierarchy = cv2.findContours(can,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours,-1,(0,255,0))
cv2.imwrite('test write.jpg', img)

*********编辑**********我刚刚通过安装 numpy 版本 1.9.2 而不是 1.10 beta 解决了这个问题。****

最佳答案

这与 NumPy 的开发和 Beta 版使用宽松的步伐有关。这样做是为了强制检测第三方库中的细微错误,这些错误会对数组的步幅做出不必要的假设。

多亏了这个问题不久前才被发现,现在已在 OpenCV 的开发版本中得到修复,请参阅 the relevant PR ,但它可能需要一些时间才能发布到适当的 OpenCV 版本。

不管它是否已修复,一旦 NumPy 1.10 的最终版本发布,您应该能够安全地切换到它,即使当前 OpenCV 版本有问题,因为 relaxed strides 将被停用。

关于python - OpenCV 3、python 3 'Image step is wrong' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31978964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com