Estoy tratando de detectar el centro de blancos de puntos negros/blancos, como en esta imagen. He intentado usar el método cv2.HoughCircles pero 1, solo puedo detectar de 2 a 3 objetivos, y 2, cuando trazo los círculos encontrados nuevamente en la imagen, siempre están ligeramente desplazados.Detección de objetivo de punto OpenCV que no encuentra todos los destinos, y los círculos encontrados están desplazados
¿Estoy utilizando el método incorrecto? ¿Debería usar FindContours o algo completamente diferente?
Aquí está mi código:
import cv2
from cv2 import cv
import os
import numpy as np
def showme(pic):
cv2.imshow('window',pic)
cv2.waitKey()
cv2.destroyAllWindows()
im=cv2.imread('small_test.jpg')
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
#I've tried blur,bw,tr... all give me poor results.
blur = cv2.GaussianBlur(gray,(3,3),0)
n,bw = cv2.threshold(blur,120,255,cv2.THRESH_BINARY)
tr=cv2.adaptiveThreshold(blur,255,0,1,11,2)
circles = cv2.HoughCircles(gray, cv.CV_HOUGH_GRADIENT, 3, 100, None, 200, 100, 5, 16)
try:
n = np.shape(circles)
circles=np.reshape(circles,(n[1],n[2]))
print circles
for circle in circles:
cv2.circle(im,(circle[0],circle[1]),circle[2],(0,0,255))
showme(im)
except:
print "no cicles found"
y este es mi corriente de salida:
Me encantaría ver su salida actual. Puede que le interese comprobar este hilo: http://stackoverflow.com/q/10313602/176769 – karlphillip
aquí está el resultado del código anterior. ! [Resultados de mi código] [1] [1]: http://i.stack.imgur.com/nd2Hr.jpg – hokiebird
Tal vez sea hora de revisar sus otras preguntas y aceptar las respuestas que las resolvieron (si hay hay alguno). Hay una pequeña casilla de verificación cerca de cada respuesta, haga clic en ella para seleccionar la respuesta oficial a su pregunta. – karlphillip