Извлечь обнаруженные края из изображения в отдельное изображение - PullRequest
1 голос
/ 10 июля 2020

Я хотел бы обрезать определенную область вокруг обнаруженного угла (например, обнаруженного детектором Харриса) и сохранить эту область как отдельное изображение. Кто-нибудь знает, как это решить?

У меня возникла идея начать с этих базовых c строк:

import cv2
import numpy as np

filename = 'pic1.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.imwrite('pic2.jpg',img)
if cv2.waitKey(0) & 0xff == 27: cv2.destroyAllWindows()

1 Ответ

0 голосов
/ 10 июля 2020

Найдите контуры в краевом изображении и получите ограничивающий прямоугольник этого контура. Используя детали ограничивающего прямоугольника, обрежьте изображение. У вас будет желаемый результат.

...