我只是想使用代码here在图像中查找轮廓。
代码实际上是从示例中复制而来的:
import numpy as np
import cv2
im = cv2.imread('test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
但程序每次都在findContours
失败。
错误是:
OpenCV Error: Assertion failed (_contours.kind() == _InputArray::STD_VECTOR_VECTOR && _contours.channels() == 2 && _contours.depth() == CV_32S) in findContours, file /home/shahzeb/Downloads/opencv/modules/imgproc/src/contours.cpp, line 1708
traceback (most recent call last):
File "edges.py", line 7, in <module>
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.error: /home/shahchip/Downloads/opencv/modules/imgproc/src/contours.cpp:1708: error: (-215) _contours.kind() == _InputArray::STD_VECTOR_VECTOR && _contours.channels() == 2 && _contours.depth() == CV_32S in function findContours
有人能否解释这个错误。我似乎无法理解任何一个。
如果相关,我确实从源代码编译了OpenCV。
编辑:
对于有此错误的其他人,我发现OpenCV在提交后中断:6f2fea7ea5f3f61cee860168700537165f3a77db在OpenCV的主分支上。