Załóżmy, że mam obraz z jednym koloremtło (powiedzmy czarne), które ma wiele „wysp” o innym kolorze. Wyobraź sobie czarne tło z czerwonymi, żółtymi i zielonymi plamami koloru rozrzuconymi po całym. Chcę program, który narysuje kontur wokół wszystkich tych łat. Używam opencv z python. Znalazłem już program do rysowania konturu, jeśli kolor jest predefiniowany. Jeśli nie, co mogę zrobić? I nie ma specyficznego kształtu, który mógłby zepsuć te łatki.
Odpowiedzi:
2 dla odpowiedzi № 1import cv2
import numpy as np
img=cv2.imread("img.jpg")
edges = cv2.Canny(img,100,200)
_,contours,hierarchy = cv2.findContours(edges, 1, 2)
for cnt in contours:
(x,y),radius = cv2.minEnclosingCircle(cnt)
center = (int(x),int(y))
radius = int(radius)
cv2.circle(img,center,radius,(255,255,255),2)
cv2.imshow("Detected!",img)
cv2.waitKey(0)
cv2.destroyAllWindows()