作者isaacting (2312312)
看板C_and_CPP
標題Re: [問題] OPENCV處理速度一問(語法比土法煉鋼快?)
時間Tue Oct 22 11:14:40 2013
※ 引述《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