2017-08-04 3 views
1

J'essaie de trouver les valeurs de pixels des coins de ces triangles. Je peux marquer les points sur l'image de sortie mais je ne sais pas comment l'obtenir comme variable pour l'impression. Je veux que ces valeurs de coin soient stockées dans une variable. This est l'image d'entrée "triangles.png". This est l'image de sortie.Trouver les coins d'un triangle

import cv2 
import numpy as np 
from matplotlib import pyplot as plt 
filename = 'triangles.png' 
img = cv2.imread(filename) 
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
gray = np.float32(gray) 
dst = cv2.cornerHarris(gray,2,3,0.04) 
##result is dilated for marking the corners, not important 
dst = cv2.dilate(dst,None) 
img[dst>0.01*dst.max()]=[250,0,0] 
cv2.imshow('dst',img) 
if cv2.waitKey(0) & 0xff == 27: 
    cv2.destroyAllWindows() 
+1

Qu'est-ce qui ne va pas avec l'exemple dans la documentation? http://docs.opencv.org/2.4/doc/tutorials/features2d/trackingmotion/harris_detector/harris_detector.html – Piglet

Répondre

1
dst = cv2.cornerHarris(gray, 2, 3, 0.04) 
x, y = np.nonzero(dst > 0.01 * dst.max()) 

x, y - tableaux numpy avec des coordonnées x et y des coins. vous pouvez l'utiliser plus tard:

coordinates = zip(x, y)