作者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