資源簡介
可應用于數字圖像處理,將灰度圖像或者彩色圖像R,G,B某個通道的圖像轉換為二值圖像,也稱半色調處理
代碼片段和文件信息
function?stucki?=?stucki_ht(imagefilename)
%?誤差擴散算法——stucki半調算法。將灰度圖像很好的轉換為二值圖像。
%?對輸入的image圖像進行stucki半色調處理并將生成的半色調圖像保存為文件
%?image:待半色調處理的圖像
%?filename:保存為圖像文件的文件名
%?stucki半色調算法是有半色調算法中誤差擴散的一種。
[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?????????????stucki(ij)?=?0;?????%?0為黑
????????else
????????????stucki(ij)?=?1;
????????end
????????e(ij)?=?stucki(ij)?-?fij;
????end
end
%imshow(stucki);
imwrite(stuckistrcat(filename‘_stucki_halftone.bmp‘)‘bmp‘);
%|----------------------|???|----------------------|?
%|??????????????8???4???|???|lu4??lu3??u2??ru3??ru4|
%|??2???4???8???4???2???|???|lu2??lu1??u1??ru1??ru2|
%|??1???2???4???2???1???|???|l2???l1???????????????|
%|----------------------|???|----------------------|
%?左上方
function?y?=?LU1(ije)
h?=?4
評論
共有 條評論