Manoj Amarasekera Manoj Amarasekera - 16 days ago 5
Python Question

How to get x,y coordinates using python?

I have detected the corners (red dots in the image) of this image using below algorithm (cornerHarris). Now I want to get the coordinates of that points. How can I do that?

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

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