我的用于直方图均衡的初始代码计算频率(1)至FREQ(254)完全地并计算频率(255)和频率(256)错误地。在freq(255)中的结果与在freq(255)和freq(256)处的实际结果的总和是错误的。和频率(256)始终保持为0。在频率直方图均衡误差(255)频率(256)值
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);
numofpixels = 1080*1920;
value = 500;
%calculating the frequency
for i=1:1080
for j=1:1920
value=mdata(i,j,1);
freq(value+1)=freq(value+1)+1;
probf(value+1)=freq(value+1)/numofpixels;
end
end
所以我修改了最初的代码下面的代码,在那里我单独检查,如果在任何像素值是254和255这完美的作品。这背后的原因是什么?
freq=zeros(256,1);
probf=zeros(256,1);
probc=zeros(256,1);
cum=zeros(256,1);
output=zeros(256,1);
numofpixels = 1080*1920;
maximum254 = 0;
maximum255 = 0;
value = 500;
%calculating the frequency
for i=1:1080
for j=1:1920
value=mdata(i,j,1);
if value < 254
freq(value+1)=freq(value+1)+1;
end
if value==254
freq(255)=freq(255)+1;
maximum254 = maximum254 +1;
end
if value==255
freq(256)=freq(256)+1;
maximum255 = maximum255 +1;
end
probf(value+1)=freq(value+1)/numofpixels;
end
end
MDATA含有所以做我的回答可以帮助您的像素范围从0到255 –
的值不同? – rayryeng