как показать контурное или морфологически измененное изображение в opencv - PullRequest
1 голос
/ 20 февраля 2020
img = cv2.imread("/Users/meenakshi/Desktop/lala.jpg")
img=cv2.resize(img,(1200,700))
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
binary = cv2.inRange(gray,65,255)
image,contours,hierarchy = cv2.findContours(binary.copy(),cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = max(contours, key= lambda x: cv2.contourArea(x))
cv2.imshow("Radar", cnt)
cv2.waitKey(0)
epsilon = 0.0005*cv2.arcLength(cnt,True)
cnt = cv2.approxPolyDP(cnt,epsilon,True)
M = cv2.moments(cnt)
cX = int(M["m10"]/M["m00"])
cY = int(M["m01"]/M["m00"])
cv2.circle(cnt,(cX,cY),7,(0,255,0),-1)

это мой код, я хочу увидеть окончательное контурное изображение с кругом момента, но когда я даю

cv2.imshow("Image", cnt)
cv2.waitKey(0)

ошибка отображается как

(-15:Bad number of channels) Source image must have 1, 3 or 4 channels in function 'cvConvertImage'

Что я должен сделать?

1 Ответ

0 голосов
/ 21 февраля 2020

cv2.circle(cnt,(cX,cY),7,(0,255,0),-1)

создать круг на контуре с максимальной площадью. Если вы хотите увидеть кружок на исходном изображении, вы можете передать img вместо cnt

cv2.circle(img,(cX,cY),7,(0,255,0),-1)
cv2.imshow("Image", img)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...