Как применить дилатацию к определенной области изображения? - PullRequest
0 голосов
/ 27 сентября 2018

Я применил расширение ко всему изображению (img), но жирный текст / логотип в верхнем левом углу все еще не тронут.Это происходит каждый раз, когда на входном изображении есть логотип или жирный шрифт

dilated_img = cv2.dilate(img, np.ones((7, 7), np.uint8))

Теперь я хочу повторно применить расширение с более высоким значением (> 7), но только в этом регионе.Я не могу применить расширение с более высоким значением ко всему изображению, потому что тогда оно дает мне плохие результаты.Я хочу применить низкозначную дилатацию ко всему изображению, а затем повторно применить высокоценную дилатацию к регионам, которые не были расширены

(это должно быть обобщено для каждого изображения, а не только для этого)

Как мне этого добиться?

input image

1 Ответ

0 голосов
/ 27 сентября 2018

Если вы хотите применить операцию к прямоугольному блоку, вы можете передать регион по индексу.

Итак, сначала расширите все изображение:

dilated_img = cv2.dilate(img, np.ones((5, 5), np.uint8))

Затем перезапишите область, требующуюболее высокое расширение:

dilated_img[10:50, 30:40] = cv2.dilate(img[10:50, 30:40], np.ones((20, 20), np.uint8))
...