资源简介

可应用于数字图像处理,将灰度图像或者彩色图像R,G,B某个通道的图像转换为二值图像,也称半色调处理

资源截图

代码片段和文件信息

function stevenson = stevenson_ht(imagefilename)
% 误差扩散算法——stevenson半调算法。将灰度图像很好的转换为二值图像。
% 对输入的image图像进行stevenson半色调处理并将生成的半色调图像保存为文件
% image:待半色调处理的图像
% filename:保存为图像文件的文件名
% stevenson半色调算法是有半色调算法中误差扩散的一种。

[mn]=size(image);
t=ones(mn)/2;
e=zeros(mn);       %e为量化误差矩阵,初始值为零
image=double(image);

for i=1:m
    for j=1:n
        lu1 = LU1(ije);
        lu2 = LU2(ije);
        lu3 = LU3(ije);
        lu4 = LU4(ije);
        lu5 = LU5(ije);
        u  = U(ije);
        ru1 = RU1(ije);
        ru2 = RU2(ije);
        ru3 = RU3(ije);
        ru4 = RU4(ije);
        ru5 = RU5(ije);
        l  = L(ije);
        aij = lu1 + lu2 + lu3 + lu4 + lu5 + u + ru1 + ru2 + ru3 + ru4 +ru5 + l;
        fij = image(ij)/255 - aij;
        if fij < t(ij)     %t是阈值模板
            stevenson(ij) = 0;     % 0为黑
        else
            stevenson(ij) = 1;
        end
        e(ij) = stevenson(ij) - fij;
    end
end

%imshow(stevenson);
imwrite(stevensonstrcat(filename‘_stevenson_halftone.bmp‘)‘bmp‘);

%|-------------------------------|   |-------------------------------------| 
%|              x       32       |   | lu5       lu4      ru4         ru5  |
%| 12       26      30      16   |   |      lu3       u         ru3        |
%|      12      26      12       |   | lu2       lu1      ru1         ru2  |
%|  5       12      12      5    |   |       l        x                    |
%|-------------------------------|  

评论

共有 条评论