如何使用Python获取x,y坐标?

3
我使用以下算法(cornerHarris)检测了这张图片的角点(图中的红色点)。现在我想要获取那些点的坐标。我该怎么做?
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


我对Python或Harris Comer并不太熟悉,但是浏览了您的代码后,我没有看到任何涉及到你检测到的红色点的代码。 - Mahendra Gunawardena
这段代码运行正常!我上传的图片就是它的运行结果。 - Nine3KiD
1个回答

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

我应该把这段代码放在哪里?在我将点染成红色之后还是其他地方? - Nine3KiD
@ManojAmarasekera 上面的代码只是计算了图片中每个红点的坐标。因此,它需要放在img[dst>0.01*dst.max()]=[0,0,255]之后。如果您使用的是Python3,则可能需要调整zip行,因为Python3将返回指针而不是列表。 - Philipp Braun
你的回答正是我所需要的。谢谢! - Nine3KiD
先生,我有一些问题需要向您澄清... 我不知道这是否正确,可以给我一个电子邮件地址或其他联系方式吗? - Nine3KiD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接