Sto provando a rilevare "buchi" in un disegno, vale a dire non sono abbastanza cerchi, sono di dimensioni variabili. Le immagini sono sempre in bianco e nero. Sto solo cercando di ottenere la mia testa intorno a questo problema, ho preso un esempio dalla documentazione Python:Python OpenCV - Rilevazione di piccoli "buchi" (cerchi)
import cv2
from cv2 import *
import numpy as np
img = cv2.imread('hole_test.jpg',0)
img = cv2.medianBlur(img,5)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,1,5,param1=200,param2=100,minRadius=0,maxRadius=0)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# pinpoint hole
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
cv2.imshow('holes detected',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
I fori rilevati sono pochi e lontani tra loro. C'è qualcosa che posso fare per migliorare la precisione di questo esempio o non è questo il modo migliore per ottenere questo?
Questa è un'immagine di esempio, semplicemente per mostrare le varie dimensioni/forma dei "fori" che sto cercando di trovare.
Esempio 2 come richiesto
Pattern recognition potrebbe potenzialmente lavorare su questo, hai provato? –
No, devo ancora trovare un esempio di questo. L'immagine di esempio qui è semplicemente per illustrare le dimensioni e le forme dei "buchi" che sto cercando di trovare all'interno delle immagini. –
Alcune delle tue immagini contengono cose che non sono buchi che vuoi evitare di rilevare? – YXD