pyopencv drawContours - PullRequest
       4

pyopencv drawContours

2 голосов
/ 11 августа 2010

Я использую 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/, но она похожа на мой код. Я сделал что-то не так?

Спасибо

1 Ответ

1 голос
/ 09 февраля 2011

прежде всего спасибо за этот пример, это единственный, который я нашел, чтобы проиллюстрировать использование pyopencv.findContours.К вашей проблеме: используйте контур [0] вместо списка (контуры)!Итак, измените последнюю строку на

drawContours(img, contours[0], -1, color)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...