切換
舊版
前往
大廳
主題

最近做的期末專題

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

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

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

恩......夭壽的長

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

以下是成果:

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

門檻值為0:

門檻值為100:

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

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

比較好的做法還是應該用二元線性回歸等做法會比較好

最後是程式碼:點我

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

創作回應

更多創作