Реализация интеллектуального рекурсивного алгоритма в Matlab - PullRequest
1 голос
/ 02 января 2012

Хорошо, я ссылаюсь на следующую бумагу и пытаюсь реализовать алгоритм, как указано в matlab

Единственная проблема заключается в том, как мне найти шумный пиксель, т.е. Пиксель с импульсным шумом?

X представляется импульсным пикселем в изображении, которое я должен вычислить

_

____________________________________________ 
Input – Noisy Image h 
_______________________________________________ 
Step 1: Compute X 
             for every pixel repeat steps from 2 to 7 
Step 2: Initialize w = 3 
Step 3: If X(i,j) ≠ Impulse pixel 
                 goto step 7  
Step 4: ∆i,j = { h(i1,j1) | i-(w-1)/2 ≤ i1 ≤ i+(w-1)/2,  
                                                j-(w-1)/2 ≤ j1 ≤ j+(w-1)/2} 
             b=no. of  black pixels in the window 
             w=no. of white pixels in the window 
Step 5: If ∆i,j ≠ NULL 
                    p(i,j) = mean(∆i,j
) 
                    d(i,j) = | h(i,j) – p(i,j) | 
            else   if (w < wmax) 
                           w=w+2 
                           goto step 4 
           else   
                     if (b>w) 
                           h(i,j)=0 
                    else 
                           h(i,j)=255 
Step 7: Goto next pixel 
Step 8: Calculate threshold t, from detailed coefficient  
                  matrix d 
            for every pixel 
Step 9: If (d(i,j)>t) 
                    h(i,j)=p(i,j) 
____________________________

Редактировать: Для реализации PSM илиВ методе медианного фильтра нам нужно установить некоторые параметры и пороговое значение.Это пороговое значение зависит от изображения и плотности шума.Итак, чтобы восстановить разные изображения, нам нужно проверить диапазон пороговых значений и найти лучшее.Итак, в предлагаемом нами алгоритме мы убрали необходимость определения порогового значения.Алгоритм интеллектуален и автоматически определяет порог.

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Статья, которую вы пытаетесь реализовать, явно плохо написана ... Например, в алгоритме w означает 2 вещи: размер окна и количество белых пикселей !!!

Оба шага 1 и 7 ссылаются на один и тот же цикл.

В любом случае, для меня "импульсные пиксели" - это все пиксели a, которые равны либо 0, либо 255.

По сути, это пиксели, которые являются частью шума "соли и перца".

Таким образом, вы можете найти их, выполнив:

[impulsepixelsY,impulasPixelX]=find((im==0)|(im==255));
1 голос
/ 06 января 2012

Из бумаги кажется, что «импульсные пиксели» - это просто шумные пиксели в случае соляного и перцового шума. Кроме того, также кажется, что алгоритм предоставляет «интеллектуальный» механизм для вычисления зашумленного значения пикселя с шумом, если его значение превышает пороговое значение (которое он вычисляет адаптивно).

Итак, что насчет «Если X (i, j) ≠ Импульсный пиксель»? Ну, по-видимому, авторы предполагают, что знают (!), Какие пиксели шумят (!!), что делает все это довольно нелепым, поскольку эту информацию почти невозможно узнать.

Могу также добавить, что весьма ошеломляющие результаты, представленные в статье, скорее всего, связаны с этим фактом.

P.S. Что касается аргумента, что <"импульсные пиксели" - это все пиксели a, которые равны либо 0, либо 255>, то это неверно. Набор пикселей, которые имеют значение интенсивности 0 или 255, включает в себя пиксели с шумом , а также собственных пикселей, которые просто имеют такое значение. В этом случае алгоритм, скорее всего, рухнет, поскольку он будет также шумить здоровые пиксели.

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