找到三角形的角落

时间:2017-08-04 17:42:21

标签: python opencv image-processing corner-detection

我正在尝试找到这些三角形角落的像素值。 我可以在输出图像上标记点但不知道如何将其作为打印变量获取。我希望这些角点值存储在变量中。 This是输入图像“triangles.png”。 This是输出图像。

import cv2
import numpy as np
from matplotlib import pyplot as plt
filename = 'triangles.png'
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)
img[dst>0.01*dst.max()]=[250,0,0]
cv2.imshow('dst',img)
if cv2.waitKey(0) & 0xff == 27:
    cv2.destroyAllWindows()

1 个答案:

答案 0 :(得分:2)

dst = cv2.cornerHarris(gray, 2, 3, 0.04)
x, y = np.nonzero(dst > 0.01 * dst.max())

x,y - 具有角的x和y坐标的numpy数组。你以后可以用它:

coordinates = zip(x, y)