1.Floyd-Steinberg算法的原理是什么?分析为什么该如此设计,有何好处?

来源:百度知道 编辑:UC知道 时间:2024/07/12 02:25:43

原始图像:Lena

1 Dithering

function y=dither_d44(x)
D=[0 128 ;192 64];
r=repmat(D,size(x)/2);
y=x>r;
end

运行结果:

2 Error Diffusion

利用误差扩散算法中的Floyd-Steinberg抖动算法来对图像进行二值化处理

function y=fl_stein(x)
%
% FL_STEIN applies Floyd-Steinberg error diffusion to an image x,which is
% assumed to be of type unit8
%
height=size(x,1);
width=size(x,2);
y=uint8(zeros(height,width));
z=zeros(height+2,width+2);
z(2:height+1,2:width+1)=x;
for i=2:height+1,
for j=2:width+1,
if z(i,j)<128
y(i-1,j-1)=0;
e=z(i,j);
else
y(i-1,j-1)=255;
e=z(i,j)-255;
end
z(i,j+1)=z(i,j+1)+7*e/16;
z(i+1,j-1)=z(i+1,j-1)+3*e/16;
z(i+1,j)=z(i+1,j)+5*e/16;
z(i+1,j+1)=z(i+1,j+1)+e/16;
end
end

运行结果