У меня есть изображение головы человека, из которого я обнаружил угловые точки. Вот мой код и результат из него:
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()
Изображение головы:
Обнаружен угол:
Здесь я пытаюсь указать только два угла в области шеи (самые низкие на изображении выше). Для этого я нахожу максимальное значение из массива углов и отображаю точку в красной точке. Но, оно строит красную точку в глазу. Что я делаю не так?
Как узнать координаты точек шеи (только самые нижние 2 угловые точки) ??