资源简介

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

资源截图

代码片段和文件信息

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

[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);
        u1  = U1(ije);
        u2  = U2(ije);
        ru1 = RU1(ije);
        ru2 = RU2(ije);
        ru3 = RU3(ije);
        ru4 = RU4(ije);
        l1  = L1(ije);
        l2  = L2(ije);
        aij = lu1 + lu2 + lu3 + lu4 + u1 + u2 + ru1 + ru2 + ru3 + ru4 + l1 +l2;
        fij = image(ij)/255 - aij;
        if fij < t(ij)     %t是阈值模板
            jarvis(ij) = 0;     % 0为黑
        else
            jarvis(ij) = 1;
        end
        e(ij) = jarvis(ij) - fij;
    end
end

%imshow(jarvis);
imwrite(jarvisstrcat(filename‘_jarvis_halftone.bmp‘)‘bmp‘);

%|----------------------|   |----------------------| 
%|              7   5   |   |lu4  lu3  u2  ru3  ru4|
%|  3   5   7   5   3   |   |lu2  lu1  u1  ru1  ru2|
%|  1   3   5   3   1   |   |l2   l1               |
%|----------------------|   |----------------------|

% 左上方
f

评论

共有 条评论