本學期開始到實驗室搬磚了,開始接觸一些算法以外的姿勢,也算開開眼界吧(還有好多題沒有補吶喂! = =)
第一個工作是給一個貌似很厲害的工程debug,這個程序是根據圖像的特點以及user的交互結果描出user所希望描繪的結果的邊界。
這個工程裏用到了opencv庫
配置opencv環境就搞了很長時間 - - 首先就是配置環境變量
配置完以後,爲了能引用頭文件,還要在工程的連接器裏進行設置
值得注意的是工程的環境一定要和opencv對應,如果工程是x64就要使用x64的opencv,32位就用32位
接下來用到的是opencv的一個函數和變量類型。
=========================================================樸素的分割線=========================================================
第一個是cvLoadImage()
函數內部有兩個參數,第一個參數是打開的圖片文件的路徑,第二個參數是打開圖片的方式,-1表示用默認原圖像的通道數讀取圖像,0代表強制讀取爲灰度圖像,1代表讀取彩色圖像。
關於這個函數的介紹詳細參見blog:點擊打開鏈接
然後是opencv裏的圖像的一個類,IplImage,這個類的詳細介紹參見blog:點擊打開鏈接
值得關注的問題是,一副彩色圖像通常由多個通道組成,對於顏色的描述有兩種比較主流的方式HSV(HSL)和RGB方式,RGB是爲衆人俗知的。所以處理圖像的時候要根據圖像屬於哪一種來分類進行處理,對於三通道的圖像和單通道的圖像由於其存儲方式不同,使用相同的方式處理(例如採樣)的話就會產生大問題,例如數組越界或者是結果完全不對。另外,windows在識別rgb圖像的時候,三種顏色排列的順序實際上是BGR,而opencv在用cvSaveImage來存儲rgb圖像的時候存儲的是RGB的順序,因此需要進行一下轉換。關於這個的解釋可以參見blog:點擊打開鏈接
嗯,就這麼多