请大神帮忙看下这段FloydSteinberg算法得出的半色调图结果,为什么总是三幅图一起显示

function floyd = floyd_ht(image,mfilename)

[m,n]=size(image);
t=ones(m,n)/2;
e=zeros(m,n);
image=double(image);

for i=1:m 
    for j=1:n      
       lu = LU(i,j,e);
       u  = U(i,j,e);
       ru = RU(i,j,e);
       l  = L(i,j,e);
      aij = lu + u + ru + l;
        fij = image(i,j)/255 - aij;  
        if fij < t(i,j)     %t是阈值模板
            floyd(i,j) = 0;     % 0为黑
        else
            floyd(i,j) = 1;
        end
        e(i,j) = floyd(i,j) - fij;
    end
end

imshow(floyd);
imwrite(floyd,'_floyd_halftone.bmp','bmp');

% 左上方给的误差
function y = LU(i,j,e)  %e=zeros(m,n),e为量化误差矩阵,初始值为零
h = 1/16;       % h是误差扩散核
if (i == 1 || j == 1)
    y = 0;
else
    y = h * e(i-1,j-1);
end

%上面给的误差
function y = U(i,j,e)
h = 5/16;
if (i == 1)
    y = 0;
else
    y = h * e(i-1,j);
end
             
    

不知道为什么不能贴全部代码,复制剩下的:

%右上方给的误差
function y = RU(i,j,e)
h = 3/16;
[~,N] = size(e);
if ( i == 1 || j == N)
y = 0;
else
y = h * e(i-1,j+1);
end

%左边给的误差
function y = L(i,j,e)
h = 7/16;
if ( j == 1)
y = 0;
else
y = h * e(i,j-1);
end

得出的结果是这样的:
FloydSteinberg半色调lena图
想请问修改哪一步可以变成只显示一幅图?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值