2017-03-10 4 views
0

J'essaie de détecter les cercles de l'image en utilisant ien transformer mon code:Transformée de Hough ne fonctionne pas

import numpy as np 
import cv2 

image = cv2.imread("C:/Users/Anmol/Desktop/your_file.bmp") 
output = image.copy() 
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 


circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2,10)   

cv2.waitKey(0) 

print (circles) 

# ensure at least some circles were found 
if circles is not None: 
# convert the (x, y) coordinates and radius of the circles to integers 

circles = np.round(circles[0, :]).astype("int") 

# loop over the (x, y) coordinates and radius of the circles 
for (x, y, r) in circles: 
    # draw the circle in the output image, then draw a rectangle 
    # corresponding to the center of the circle 
    cv2.circle(output, (x, y), r, (0, 255, 0), 4) 
    cv2.rectangle(output, (x -5, y - 5), (x + 5, y + 5), (0, 128, 255), -1) 

# show the output image 
cv2.imshow("output", np.hstack([image, output])) 
cv2.waitKey(0) 

arrête à la ligne

circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2,10) 

J'ai quitté mon code en cours d'exécution pour environ 5 heures mais toujours son pas en avant de cette ligne. Il ne donne aucune erreur.

Plzz guide moi ce qu'il faut faire.

+0

Si vous utilisez un IDE comme PyCharm, vous pouvez mettre un point d'arrêt sur cette ligne, puis parcourir tout le code tiers jusqu'à ce que vous trouviez l'endroit exact où la progression est bloquée. – Tagc

+0

débogueur est toujours pas montrer ce qui se passe à l'intérieur à cette étape –

+0

le lien pour mon image est https://drive.google.com/open?id=0B-SMLCVNyji1ejlRMnlSVHRrRXc –

Répondre

0

Je suggère de réduire la taille de l'image d'entrée si elle est vraiment grande et si elle utilise un filtre de flou. Les deux vont accélérer considérablement Hough.