Я использую pyopencv для поиска контуров, но не могу нарисовать найденные контуры. Я получил ошибку:
23 color = Scalar(255)
24 print type(color)
---> 25 drawContours (img, список (контуры), -1, цвет)
26
27 imshow ('Xe may - 0', img)
ArgumentError: типы аргументов Python
в
pyopencv.pyopencvext.drawContours (Mat,
list, int, Scalar) не соответствует C ++
подпись:
drawContours (cv :: Mat {lvalue} image,
станд :: вектор,
std :: allocator>>,
станд :: распределитель,
std :: allocator>>>>
контуры, int contourIdx,
cv :: Scalar_ color, int
толщина = 1, int lineType = 8,
станд :: вектор,
std :: allocator >>
иерархия = vector_Vec4i (len = 0, []), int
maxLevel = 2147483647, резюме :: Point_
смещение = Point2i (x = 0, y = 0)) ВНИМАНИЕ:
Ошибка при выполнении файла:
Вот мой код
# load image
img = imread('37S2231.jpg')
# gray scale
out = img.clone()
cvtColor(img, out, CV_RGB2GRAY)
# equalizes the histogram of a grayscale image
# increases the contrast of the image
out2 = out.clone()
equalizeHist(out, out2)
# canny to extract edges
out3 = out2.clone()
Canny(out2, out3, 150, 200)
# threshold
out4 = out3.clone()
threshold(out3, out4, 254, 255, THRESH_BINARY)
# contours
contours = findContours(out4, 1, 1)
print type(contours)
color = Scalar(255)
print type(color)
drawContours(img, list(contours), -1, color)
Я проверил функцию drawContours на http://packages.python.org/pyopencv/2.1.0.wr1.0.2/, но она похожа на мой код. Я сделал что-то не так?
Спасибо