J'essaie d'obtenir un seuil de l'échiquier d'étalonnage. Je ne peux pas détecter directement les coins de l'échiquier car il y a de la poussière car j'observe un micro échiquier. J'essaie plusieurs méthodes et HoughLinesP semble être l'approche la plus simple. Mais les résultats ne sont pas bons, comment améliorer mes résultats?Python Comment détecter les lignes verticales et horizontales dans une image avec HoughLines avec OpenCV?
import numpy as np
import cv2
img = cv2.imread('lines.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
print img.shape[1]
print img.shape
minLineLength=100
lines = cv2.HoughLinesP(image=edges,rho=0.02,theta=np.pi/500, threshold=10,lines=np.array([]), minLineLength=minLineLength,maxLineGap=100)
a,b,c = lines.shape
for i in range(a):
cv2.line(img, (lines[i][0][0], lines[i][0][1]), (lines[i][0][2], lines[i][0][3]), (0, 0, 255), 3, cv2.LINE_AA)
cv2.imwrite('houghlines5.jpg',img)
Comme vous pouvez le voir sur la figure ci-dessous, je ne peux pas obtenir mon jeu d'échecs, les lignes sont tracées dans beaucoup de directions ... (l'image d'origine: https://s22.postimg.org/iq2b91xq9/droite_Image_00000.jpg)
Utilisez seuillage, ou tentent de réduire les petits points (Erode, dilatent). – linusg
J'essaie déjà mais pas couplé avec des lignes de hough. Peut-être que cela pourrait aider à obtenir les lignes? merci pour votre hellp;) – user3601754
Je voudrais vraiment faire un autre essai de seuillage! – linusg