Удалить размытие с изображения с помощью opencv и Python - PullRequest
0 голосов
/ 27 октября 2019

Я использую HED (https://www.pyimagesearch.com/2019/03/04/holistically-nested-edge-detection-with-opencv-and-deep-learning/) для преобразования следующего изображения. Ввод:

Input

Image1

вэто изображение:

Output

Image2

Однако на выходе HED все еще есть много областей, где присутствует размытие, например, брюки для путешественников ина рюкзаке и в горах. Для того, чтобы убрать дополнительное размытие. Я попытался использовать детектор краев Canny на изображении 2 выше, вот результаты:

edges = cv2.Canny(hed,100,200)

enter image description here

Image3

Однако выходные данные на изображении 3 совершенно другие. Мне нужна пересмотренная версия изображения 2, но с удаленными размытыми областями. Как я могу это сделать?

1 Ответ

2 голосов
/ 27 октября 2019

Я не знаю, если это то, что вы хотите. Но вы можете привязать только значения выше некоторого уровня серого к белому, оставляя темные значения без изменений в Python / OpenCV следующим образом:

Ввод:

enter image description here

import cv2

# read image as grayscale
img = cv2.imread('hiker_edges.jpg',0)

# threshold to white only values above 127
img_thresh = img
img_thresh[ img > 127 ] = 255

# view result
cv2.imshow("threshold", img_thresh)
cv2.waitKey(0)
cv2.destroyAllWindows()

# save result
cv2.imwrite("hiker_edges_white_threshold.jpg", img_thresh)


Результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...