Я пытаюсь реализовать алгоритм выравнивания предельной гистограммы плато на основе исследовательской работы . Мои результаты не плохие. Но мой вывод отличается от оригинального. Я не мог понять, в чем проблема.
Я выполняю следующие действия:
Шаг первый
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
А вот мой полный код