ETH官方钱包

切換
舊版
前往
大廳
主題

最近做的期末專題

默思 | 2017-01-13 21:14:37 | 巴幣 0 | 人氣 451

期末考人工智慧跟圖像辨識都是要交專案,因為不想要做兩份作業(yè)所以打算把這兩個領(lǐng)域合起來當(dāng)一個專案做,最後當(dāng)然做出來啦,只是覺得這專案用圖上沒啥意義就是了。

專案名稱:使用粒子群演算法計算OpenCV雙邊濾波器中的d值與SigmaColor值並判斷圖像邊緣

恩......夭壽的長

其實就只是用最佳化演算法(粒子群演算法是其中一種)算出最佳參數(shù),然後把參數(shù)丟進(jìn)雙邊濾波器的函式中,讓它做影像的模糊化(去除影像雜值),最後再用Canny演算法(OpenCV裡提供的)判斷邊緣,然後....
沒有然後了...

以下是成果:

上方有個可左右拉的Bar,可以控制判斷邊緣的門檻值(Threshould),門檻值越高,邊緣越少

門檻值為0:

門檻值為100:

另外在找出最佳參數(shù)前,必須先判斷這張影像是否平滑或粗糙,所以會事先計算影像的變異數(shù),在由事先設(shè)定的的標(biāo)準(zhǔn)來判斷原圖是粗糙還是平滑,這樣在最佳化時才知道要模糊到甚麼程度。

另外這專案有個很令人詬病的地方.,就是粒子群演算法裡的適性函數(shù),我的做法是事先找出d值與SigmaColor的一元線性回歸,最後丟到粒子群演算法裡當(dāng)適性函數(shù),但是很顯然不適合,因為算出來的結(jié)果與實際上預(yù)期的結(jié)果差太多了,最後還是去調(diào)整權(quán)重才將影像出來的結(jié)果是比較符合預(yù)期的,但是適性函數(shù)的結(jié)果仍然......

比較好的做法還是應(yīng)該用二元線性回歸等做法會比較好

最後是程式碼:點我

編譯器:GNU GCC
IDE:Code Block
開發(fā)環(huán)境:Win7 與 Win10 (開發(fā)過程換過電腦,反正兩邊基本上都能跑)
語言:C++
OpenCV版本:3.1.0

創(chuàng)作回應(yīng)

相關(guān)創(chuàng)作

更多創(chuàng)作