日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机视觉库OpenCV初步了解

發布時間:2025/4/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机视觉库OpenCV初步了解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OpenCV全稱是OpenSource Computer Vision Library,是一個開放源代碼的計算機視覺庫。OpenCV最初由英特爾公司發起并開發,以BSD許可證授權發行,可以在商業和研究領域中免費試用,現在美國Willow Garage為OpenCV提供主要的支持。OpenCV可用于開發實時的圖像處理、計算機視覺以及模式識別程序,目前在工業界以及科研領域廣泛采用。


OpenCV是一個值得深入研究的庫,暫時做初步了解,后續有需要再深入研究,尤其是SVM和ANN的應用。

1OpenCV開發環境

1)C/C++開發環境:Eclipse CPP+OpenCV

Project–>Properties–>C/C++Build–>Settings–>Tool Settings:

GCC C++Compiler->Includes中添加OpenCV的頭文件目錄;

MinGW C++Linker->Libraries中添加OpenCV的庫文件目錄以及相應的庫文件名稱;首先要下載安裝Opencv。

2)Java開發環境:Eclipse Java

引入opencv-2.4.11-0.11.jar和opencv-2.4.11-0.11-windows-x86_64.jar即可;

稍前版本需要動態加載Opencv的DLL,目前只需引入相應平臺的jar包即可,不安裝opencv,不加載lib庫。稍前版本在引入在opencv-2.4.11-0.11.jar后,選擇該jar包的Native library location,輸入opencv的/build/lib 文件夾下庫目錄(lib)的路徑,當然要先安裝opencv。

2OpenCV庫基礎知識

1)圖像的基本操作

計算機數字圖像用MXN的矩陣表示,矩陣元素的值表示該位置上像素的亮度,像素值越大該點越亮。

一般來說,灰度圖用2維矩陣表示,彩色(多通道)圖像用3維矩陣(MXNX3)表示。對于圖像顯示來說,目前大部分設備都是用無符號8位整數(類型為CV_8U)表示像素亮度。

圖像數據在計算機內存中的存儲順序以圖像最左上點(也可能是最左下點)開始。如果是多通道圖像,比如RGB圖像,則每個像素用三個字節表示。在OpenCV中,RGB圖像的通道順序為BGR。

2)Mat類

既然圖像是通過矩陣表示,矩陣中每個點上的值表示像素亮度,那么Opencv是通過怎樣數據結構來保存一副圖像呢?

Mat類是新版OpenCV保存圖像的數據結構,自動管理內存。

Mat類的具體操作可以參考OpenCV教程。Mat類存儲的圖像,主要就是矩陣操作。

Mat對象由兩個數據部分組成:矩陣頭(包含矩陣尺寸、存儲方法、存儲地址等信息)和一個指向存儲所有像素值的矩陣的指針。

3)圖像讀寫

函數imread()將圖像文件讀入內存,用Mat數據結構存儲表示。將Mat對象以圖像文件格式寫入文件,可以用imwrite()函數。

imread()函數返回的是Mat對象:

Matimread(const string& filename,int flags=1)

filename是被讀取的文件,flag>0函數返回3通道圖像,flag=0返回單通道圖像,flag<0函數不對圖像進行通道轉換。

將圖像從內存寫入文件函數:

boolimwrite(const string& filename,InputArray image,constvector<int>& params=vector<int>())

filename指定存儲的文件路徑和格式。Bmp格式是無損不壓縮格式(文件大)、jpeg是有損壓縮,png是無損壓縮,建議存儲為png。

4)視頻讀寫

視頻的格式主要由壓縮算法決定。壓縮算法稱為編碼器coder,解壓算法稱為解碼器decoder,編解碼算法統稱為編解碼器codec。OpenCV提供VideoCapture來讀視頻和VideoWrite來寫視頻。

VideoCapture既可以從視頻文件中按幀讀取圖像,也可以從攝像頭讀取圖像。

VideoWrite將視頻寫入文件。

5)總結

上面這些opencv庫基礎內容,將圖像讀入后怎么處理就涉及到opencv庫中更多組件的處理。

http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html

可以通過該網站學習到具體圖像處理技術方法。

3SVM和ANN應用

1)支持向量機(SVM) 是一個類分類器,正式的定義是一個能夠將不同類樣本在樣本空間分隔的超平面。 換句話說,給定一些標記好的訓練樣本 (監督式學習),SVM算法輸出一個最優化的分隔超平面。

OpenCV庫提供CvSVM類支持SVM分類。通過CvSVM::train 訓練一個SVM分類器, 以及用 CvSVM::predict 測試訓練結果。

2)OpenCV的ml模塊實現了人工神經網絡(Artificial Neural Networks, ANN)最典型的多層感知器(multi-layer perceptrons, MLP)模型。CvANN_MLP是OpenCV中提供的一個神經網絡的類,正如它的名字一樣(multi-layer perceptrons),它是一個多層感知網絡,它有一個輸入層,一個輸出層以及1或多個隱藏層。


總結

以上是生活随笔為你收集整理的计算机视觉库OpenCV初步了解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。