2016-04-02 11 views
2

Bu görüntünün köşelerini (görüntüdeki kırmızı noktalar) aşağıdaki algoritmayı kullanarak tespit ettim (cornerHarris). Şimdi o noktaların koordinatlarını almak istiyorum. Bunu nasıl yapabilirim?Python kullanarak x, y koordinatları nasıl alınır?

import cv2 
import numpy as np 

filename = 'Square.jpg' 
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) 

# Threshold for an optimal value, it may vary depending on the image. 
img[dst>0.01*dst.max()]=[0,0,255] 

cv2.imshow('dst',img) 
cv2.waitKey(0) 
cv2.imwrite('CornerSquare.jpg',img) 

enter image description here

+0

Python veya Harris Comer ile çok aşina değilim ama bunu ifade eder herhangi bir kod görmüyorum kodunuzu tarama kırmızı çizgilerle –

+0

bu kodu tespit ettik çalışıyor! ve yüklediğim resim, bunu çalıştırarak sahip olduğum şey. –

cevap

2
coord = np.where(np.all(img == (0, 0, 255), axis=-1)) 
print zip(coord[0], coord[1]) 
+0

Bu kodu kodumda nereye koymalıyım? noktayı kırmızı veya başka bir yerde renklendirdikten sonra –

+0

@ManojAmarasekera Yukarıdaki kod, yalnızca resimdeki her kırmızı noktanın koordinatlarını hesaplar. Bu nedenle, img [dst> 0.01 * dst.max()] = [0,0,255] 'dan sonra yerleştirilmelidir. Python3 kullanıyorsanız, 'zip 'satırını python3 olarak ayarlamak gerekebilir, bunun yerine liste yerine bir işaretçi döndürür. –

+0

cevabınız, ihtiyacım olan şey. Teşekkür ederim! –