看板 PCCU-CS 關於我們 聯絡資訊
題目:用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