看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《fantoccini (如何實現兒時夢想)》之銘言: : 因為你重複算了很多東西 所以速度才會慢 : 方法一: : 第一個5x5如下 : ┌┬┬┬┬┐ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : └┴┴┴┴┘ : 第二個5x5如下 : ┌┬┬┬┬┐ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : ├┼┼┼┼┤ : └┴┴┴┴┘ : 當你在算第二個時 有20個數重複累加過 : 所以做法就是 用個temp變數 把這20個數記起來 : 每次只算新的5個數就好了 下個temp要扣掉前5個數 : 方法二: : image integral 我是剛剛突然想到,不過這是因為是從matlab那邊得到的想法 matlab跑回圈的速度非常的慢,所以之前在寫matlab code時都會盡量避免 把回圈寫進去. 我後來有去看一下matlab是如何處理這些filter的, 就是都先轉成fft然後在頻域上 直接相乘.做完之後再用ifft轉回原本的spatial domain 用fft的複雜度好像是nlog(n),但用convolution的方法就是n^2 所以這可能也會快些 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.76.175.171
isaacting:但這應該就是更高級的做法了,如果可以用fftw來做 10/22 11:18
isaacting:速度應該會超級快...等等來寫一個 10/22 11:18
Feis:Box filter 不一定適合轉頻率域,照你說法一般1D實作是O(n), 10/22 11:28