【问题标题】:How to get x,y coordinates using python?如何使用python获取x,y坐标?
【发布时间】:2016-11-20 04:40:56
【问题描述】:

我已使用以下算法 (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)

【问题讨论】:

  • 我对python或Harris Comer不太熟悉,但是扫描你的代码我没有看到任何代码表明你检测到了红点
  • 此代码有效!我上传的图片就是我运行这个得到的。

标签: python opencv image-processing


【解决方案1】:
coord = np.where(np.all(img == (0, 0, 255), axis=-1))
print zip(coord[0], coord[1])

【讨论】:

  • 我应该将此代码放在我的代码中的什么位置?在我将点涂成红色或其他地方后
  • @ManojAmarasekera 上面的代码只是简单地计算了你图片中每个红点的坐标。所以需要放在img[dst>0.01*dst.max()]=[0,0,255]之后。如果您使用的是 python3,您可能需要调整 zip 行,因为 python3 将返回指针而不是列表。
  • 您的答案正是我所需要的。谢谢!
  • 先生,我有一些问题要向您澄清... IDK 这是对还是错,先生,我可以有一个电子邮件地址或其他联系方式吗?
猜你喜欢
  • 2022-11-13
  • 2018-05-12
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 2015-05-23
  • 1970-01-01
相关资源
最近更新 更多