2016-04-02 60 views
2

以下のアルゴリズム(cornerHarris)を使用して、この画像のコーナー(画像内の赤い点)を検出しました。今私はその点の座標を取得したいと思います。どうやってやるの?Pythonを使ってx、y座標を取得する方法は?

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やハリスカマーとあまり慣れていないけど、私はそれを参照するすべてのコードが表示されないあなたのコードをスキャンはあなたは赤い点 –

+0

にこのコードを検出しましたは働いている!私がアップロードした画像はこれを実行して得た画像です。 –

答えて

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

このコードをどこに配置すればよいですか?赤または他の場所でポイントを塗りつぶした後 –

+0

@ManojAmarasekera上記のコードは、あなたの写真の各赤い点の座標を計算します。したがって、 'img [dst> 0.01 * dst.max()] = [0,0,255]'の後に置く必要があります。 python3を使用している場合、python3はリストの代わりにポインタを返すので、 'zip'行を調整する必要があります。 –

+0

あなたの答えは私が必要としたものです。ありがとうございました! –

関連する問題