Как реализовать SIS Thresholding в Python OpenCV - PullRequest
1 голос
/ 06 июня 2019

В Aforge.net я увидел один порог с именем SIS (Простая статистика изображений).Как я могу реализовать тот же порог в OpenCV Python?Ссылка предоставлена ​​в комментариях.

1 Ответ

0 голосов
/ 07 июня 2019

Я не очень хорошо знаю OpenCV.Но так я бы поступил в командной строке ImageMagick 7 в Bash Unix.

IM 7 (HDRI по умолчанию) с зажимом = выключен необходим, чтобы избежать ограничения свертки для значений за пределами квантового диапазона (что произошло бы для не HDRI).

Замечуэто масштаб 1x1!вычислю среднее, а не сумму.Но поскольку числитель и знаменатель имеют одинаковое количество пикселей, соотношение не имеет значения, суммирую я или усредняю.

Ввод:

enter image description here

wt=`magick sample11.png \
\( -clone 0 -define convolve:scale=! -define compose:clamp=off -morphology convolve "3x1: -1,0,1" +duplicate -compose multiply -composite -evaluate pow 0.5 \) \
\( -clone 0 -define convolve:scale=! -define compose:clamp=off -morphology convolve "1x3: -1,0,1" +duplicate -compose multiply -composite -evaluate pow 0.5 \) \
-delete 0 -evaluate-sequence max \
-scale 1x1! -format "%[fx:u]" info:`

wtI=`magick sample11.png \
\( -clone 0 -define convolve:scale=! -define compose:clamp=off -morphology convolve "3x1: -1,0,1" +duplicate -compose multiply -composite -evaluate pow 0.5 \) \
\( -clone 0 -define convolve:scale=! -define compose:clamp=off -morphology convolve "1x3: -1,0,1" +duplicate -compose multiply -composite -evaluate pow 0.5 \) \
\( -clone 1,2 -evaluate-sequence max \) \
-delete 1,2 \
-evaluate-sequence multiply \
-scale 1x1! -format "%[fx:u]" info:`

thresh=`convert xc: -format "%[fx:100*$wtI/$wt]" info:`
echo $thresh
50.0114

magick sample11.png -threshold $thresh% result.png


enter image description here

Вот несколько полезных ссылок для выполнения свертки, разности, абсолютного значения, умножения и среднего (среднего) в Python OpenCV:

https://www.pyimagesearch.com/2016/07/25/convolutions-with-opencv-and-python/

https://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html

Однако я не думаю, что это очень хорошо работает на реальных изображениях.Я примерил несколько.Вот один пример:

enter image description here

и вот результат:

enter image description here

Итак, я задаюсь вопросом, какова цель этого порогового уровня или на каких типах изображений он хорошо работает?

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