Re: [問題] OPENCV處理速度一問(語法比土法煉鋼快?)

看板C_and_CPP (C/C++)作者 (2312312)時間12年前 (2013/10/22 11:14), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《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

10/22 11:18, , 1F
但這應該就是更高級的做法了,如果可以用fftw來做
10/22 11:18, 1F

10/22 11:18, , 2F
速度應該會超級快...等等來寫一個
10/22 11:18, 2F

10/22 11:28, , 3F
Box filter 不一定適合轉頻率域,照你說法一般1D實作是O(n),
10/22 11:28, 3F
文章代碼(AID): #1IPUsZjc (C_and_CPP)
文章代碼(AID): #1IPUsZjc (C_and_CPP)