卷積運算是圖像處理和增強(qiáng)中經(jīng)常遇到的一種算法。由于很多優(yōu)秀的開源算法都是采用matlab編寫的,在我改寫為c語言的時候就必然會遇到改寫卷積算法的問題。在matlab中,卷積可以由imfilter來實現(xiàn),在opencv中則是由filter2D來實現(xiàn)。它們之間的具體轉(zhuǎn)化過程是什么?我通過一系列實驗來研究。

          一、實驗準(zhǔn)備

          為了方便觀察,仍然是采用分開來研究的方法。1)是輸入數(shù)字作為卷積內(nèi)容,直接觀察結(jié)果;2)是采用小塊圖片作為卷積內(nèi)容,仍然是比較結(jié)果;3)是采用真實的圖片和真實的卷積核作為輸入,對比最后處理圖片的效果。

          那么,首先需要了解的就是在matlab中和opencv中如何將矩陣的內(nèi)容進(jìn)行比對?

          在matlab中可以直接打印到矩陣變量中去,而在opencv中可以這樣直接打印到屏幕上面。然后將兩者在matlab中做減法,直觀地比較最后的結(jié)果。

          二、過程

          1)是輸入數(shù)字作為卷積內(nèi)容

        int _tmain(int argc, _TCHAR* argv[])

{
    //filter2d的卷積方法
    printf(    "filter2d的卷積方法\n");
 

網(wǎng)友評論