opencv3 0 河冰識別(持續更新中)

2021-07-04 10:07:29 字數 1228 閱讀 8499

這個專案開始也有一段時間了,前面一部分做的是河流提取,利用遙感衛星tm影象的tm1、tm4波段進行基於otsu演算法的閾值分割提取河流。河冰這部分一直在看以前乙個類似專案的源**,初步發現是利用的hsv影象的v通道進行閾值分割。先把影象分成h、s、v三個通道,然後對v通道進行濾波,濾波方式還沒有確定,比較了一些效果之後打算用雙邊濾波,然後好像還有乙個mask,其中有個cvrange函式,一直不知道是幹嘛用的,而且還沒有找到函式**。

先要把需要提取的部分分離出來,這部分可以利用前面的河流提取,明天爭取把**初步實現一下。。。

2015.8.8

學習了c#介面製作,在乙個button上新增開啟的屬性,不光是button,所有的控制項上都可以新增這麼個屬性,

**如下:

private void 新建toolstripmenuitem_click(object sender, eventargs e)

其中openfiledialog就是乙個類,在使用非靜態類的時候需要先宣告乙個new,然後ofd.title就是在開啟的視窗上面顯示的名字

2015.8.9

emgucv3.0 + vs2013 + win10的專案配置,網上相關**也不多,雖然手頭上有相關專案,但是**還是得一行一行的改,而且emgucv3.0的變化還是挺大的,正好有一本opencv3.0的書,還可以用來參考。

emgucv3.0對mat類的初始化要用mat img = new mat(size,imgdepth,imgchannel);

2015.8.11

沒想到emgucv3.0竟然直接裡的split函式的引數竟然變了,目標影象竟然變成了vector型別,也就是說如果我要把乙個的三個通道分離出來竟然是需要利用vector的,但是我在網上找了很久,發現在c#裡面是沒有vector的,這可不知道怎麼辦了,我在上面宣告乙個vector,函式果然不報錯了,變成了vector報錯,而如果不用vector的話函式則一直報錯,也找不到相關的資料,我只好又換成了emgucv2.4.9。

第二個問題,在c#中宣告image的時候竟然會報錯,不論我把color那部分寫成什麼都會說缺少相關定義或標頭檔案,image不本來就是c#drawing命名空間的嘛,怎麼會這樣,又是找了很久,原來是缺少了乙個標頭檔案,emgu.cv.structure,也不知道這個標頭檔案是幹嘛用的,而且好像在emgucv的資料夾裡面也沒有找到這個標頭檔案,可能是我漏了吧,感覺挺圓滿的,不斷的發現問題,然後去解決問題,可是還有一部分用opencv3.0的c++**沒有改完呢。。。。

OpenCV3 0基本型別初探(二)

point是cv中最基本的型別,其表示乙個單個的點,檔案中宣告如下 template typename tp class cv exports point 另外也有一些為了方便使用而設定的型別名 typedef point point2i typedef point point2f typedef ...

opencv 3 0下遍歷資料夾下files

在opencv 2.0 中,使用cv directory 可以遍歷資料夾,具體如下鏈結 directory dir vector filenames dir.getlistfiles src path,true for int i 0 i filenames.size i 但是在3.0中cv dir...

Cuda9 0以上安裝opencv3 0以上

問題一 由於cuda9.0以上不支援opencv2.0架構,安裝時會報錯 cmake error the following variables are used in this project,but they are set to notfound.需要修改幾個檔案 1 findcuda.cma...