Как реализовать алгоритм выравнивания предельной гистограммы плато с помощью MATLAB - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь реализовать алгоритм выравнивания предельной гистограммы плато на основе исследовательской работы . Мои результаты не плохие. Но мой вывод отличается от оригинального. Я не мог понять, в чем проблема.

Я выполняю следующие действия:

Шаг первый

for i=1:256 
  modified_histogram(i)  = ((log( histogram_of_image(i)+double(a)))^double(beta)); % a and beta have to be set to 2      
end 

ШагДва

for i=1:256
    if(modified_histogram(i)~=0)
        sum1 = sum1 + modified_histogram(i);
        cnt = cnt + 1;
    end
end

tcl = sum1/cnt;

clipped_histogram = zeros(1,256);
for i=1:256
    if((modified_histogram(i)) >= tcl)
    clipped_histogram(i) = tcl;    
    else 
    clipped_histogram(i) = (modified_histogram(i));   
   end
end

Шаг третий

PDa = zeros(1,256);
for i=1:256
 PDa(i) = clipped_histogram(i) / (sum(clipped_histogram)); %number of total pixels in image 'M' equals to sum(clipped_histogram)
end

CDa = zeros(1,256);  %create CDa in formula
CDa(1) = PDa(1) ;
for i=2:256
     CDa(i) =  PDa(i) +  CDa(i-1);  
end


value_after_enhancement =  zeros(1,256); 
for i=1:256
     value_after_enhancement(i) = (255 * CDa(i)); %XL-1=255 and X0=0
end

А вот мой полный код

...