Matlab小程式:圖片馬賽克化

利用matlab的內建指令imresize作馬賽克(mosaic)。

程式碼
% Parameters
pix_grp = 20;
img_fname = 'target-3.jpg';

% Processing
target = imread(img_fname);
height = size(target,1);
width = size(target,2);
mosaic = imresize(target,[floor(height/pix_grp) floor(width/pix_grp)]);
mosaic = imresize(mosaic,[height width],'nearest');

imshow(mosaic);
方才靈機一動的想法,不過我自己對自己傻眼,想到三天前我還慢慢的用for, while迴圈磨了一段時間才寫出來,現在卻兩個指令打死這些心血。


2008-01-03 修正寬高的size對應寫反

留言

匿名表示…
matlab, not mtalab
匿名表示…
不錯啊,這麽快就改過來了。:P

想問一下,這個程序用interpolation做也一樣吧!

——Matlab初學者
Mirochiu寫道…
內插法不是用在縮放的嘛?相同的圖片大小,內插法會產生出什麼結果,我沒有頭緒。
竹鼠寫道…
"方才靈機一動的想法,不過我自己對自己傻眼,想到三天前我還慢慢的用for, while迴圈磨了一段時間才寫出來,現在卻兩個指令打死這些心血。"

哈哈..跟我一模一樣