Member 14785741 Ответов: 1

Как обрезать подизображение из изображения с помощью обнаружения краев


Так что в основном у меня есть изображение с пробелами и текстом выше.
На выходе должна быть только картинка. Без текста и пробелов. Лучшим примером, вероятно, будет мем:

https://i.stack.imgur.com/03Tmo.jpg

Как я могу это осуществить?

Что я уже пробовал:

Я думаю, что мне нужно было бы получить угловые координаты, а затем использовать что-то вроде подушки
Image.crop(corner_coordinates)

Я попробовал использовать алгоритм обнаружения Канни-краев (opencv). Теперь я получаю нужные ребра, а также ребра из текста. Было бы неплохо, если бы кто-нибудь мог мне помочь:)

1 Ответов

Рейтинг:
2

Member 14953523

импорт cv2
импорт включает в себя как НП
#ИМГ = cv2.imread("тест.ПНГ")
ИМГ = cv2.imread("img02.ПНГ")
размыто = cv2.blur(img, (3,3))
canny = cv2.Canny(размыто, 50, 200)

## найдите ненулевые минимальные и максимальные координаты Кэнни
ПЦ = НП.argwhere(себе на уме&ГТ;0)
y1,x1 = pts.min(ось=0)
y2,x2 = pts.max(ось=0)

## растениеводство регионе
обрезанный = img[y1:y2, x1:x2]
cv2.imwrite("обрезанный.png", обрезанный)

Меченый = cv2.прямоугольник(рис.скопировать(), (Х1,У1), (Х2,У2), (0,255,0), 3, cv2.LINE_AA)
cv2.imshow("tagged", помеченный)
cv2.waitKey()