Лапласиан Гауссовский: как это работает? (OpenCV) - PullRequest
12 голосов
/ 26 марта 2010

Кто-нибудь знает, как это работает и как это сделать с помощью OpenCV? Лапласиан может быть рассчитан с использованием OpenCV, но результат не тот, что я ожидал. Я имею в виду, я ожидаю, что изображение будет приблизительно постоянным контрастом в областях фона, но оно черное, а края белые Также много шума, даже после гауссового фильтра. Я фильтрую изображение, используя фильтр Гаусса, а затем применяю Лаплас. Я думаю, что я хочу сделать по-другому.

1 Ответ

16 голосов
/ 26 марта 2010

Лапласиан Гауссова является фильтром обнаружения края; выходное значение равно 0 в постоянных («фоновых») областях и положительное или отрицательное в случае контраста. Причина, по которой вы видите черный цвет в фоновых областях, заключается в том, что OpenCV просто дает вам необработанный вывод; тип изображения, которое вы описываете (серый на фоне, с положительными / отрицательными краями в черном или белом), получается после масштабирования выходного сигнала в соответствующий диапазон.

Выходной диапазон варьируется в зависимости от фактического используемого ядра, но он всегда будет соответствовать диапазону (-max, +max) около нуля, где max - максимальная выходная величина ядра фильтра; чтобы получить «типичное» выходное изображение, вам нужно увеличить его до диапазона (0, 1) (или (0, 255), если вы используете 8-битные изображения).

Вы можете выполнить необходимое масштабирование, используя функцию cvScale, с 1/(2*max) в качестве коэффициента масштабирования и смещением 0.5. (Или для 8-битных изображений используйте 255/(2*max) масштаб и 128 сдвиг.)

...