作者maokejackson (百年難得發表文章)
看板PCCU-CS
標題[作業] 影像處理作業4
時間Fri Jun 15 23:47:51 2007
題目:用convolution進行濾波運算,再用二維遮罩比較其運算時間
參考課本96-97, 151-154頁
Convolution就像是兩個多項式相乘
不知道原理的話放心,Matlab有內建convolution指令
conv(1-D)和conv2(2-D)
下面程式僅供參考,要修改的話幅度請大一些。
=========================== 程式開始 ============================
filename = 'grayscale.bmp';
Image = double(imread(filename));
fv = [1 -2 1]';
fh = [1 -2 1];
ff = fv * fh;
% 用兩次conv2來做
tic;
Iv = conv2(Image, fv, 'same');
I1 = conv2(Iv, fh, 'same');
disp(sprintf('兩次conv2所花時間: %f 秒', toc));
% 用filter2來做
tic;
I2 = filter2(ff, Image, 'same');
disp(sprintf('用filter2所花時間: %f 秒', toc));
=========================== 程式結束 ============================
你可以用imshow分別顯示I1和I2,結果是一樣的。
運算時間因電腦配備而異,可以確定的是conv2一定比filter2快。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.89.82