【发布时间】:2019-01-03 10:17:05
【问题描述】:
我有一张人头图像,我从中检测到了角点。这是我的代码和结果:
import cv2
import numpy as np
Head = cv2.imread('Head.jpg')
#Corner detection
gray = cv2.cvtColor(Head, cv2.COLOR_BGR2GRAY)
gray = np.float32(gray)
corners = cv2.goodFeaturesToTrack(gray, 50, 0.01, 10)
corners = np.int0(corners)
for corner in corners:
x,y = corner.ravel()
cv2.circle(Head, (x,y), 3, 255, -1)
z = np.max(y)
cv2.circle(Head, (x,z), 5, (0,0,255), -1)
cv2.imshow('Corner', Head)
cv2.waitKey(0)
cv2.destroyAllWindows()
头像:
检测到角点:
在这里,我只想指出颈部区域的两个角(上图中最低的角)。为此,我从角的 numpy 数组中找出最大 y 并用红点绘制点。但是,它在眼睛中绘制红点。我做错了什么?
如何找到颈部的坐标点(仅最低2个角点)??
【问题讨论】:
-
角的形状和dtype是什么?
-
角的形状是什么意思?如果您指的是 image.shape,则它是 522 x 522。Dtype 是 unit8。
-
我指的是
corners = np.int0(corners)
标签: python numpy opencv image-processing