光說不練假把式,來看一個簡單的例子,瞭解瞭解OpenCV。這個小demo沒有幾行代碼,做用是顯示項目目錄下面的一張圖片。ios
#include <opencv2\opencv.hpp> #include <iostream> int main() { IplImage *src; src = cvLoadImage("logo.jpg",-1); cvNamedWindow("logo.jpg",0); cvShowImage("logo.jpg",src); cvWaitKey(0); cvDestroyWindow("logo.jpg"); cvReleaseImage(&src); return 0; }
雖然例子微不足道,但仍是有不少要點值得我去研究一番的。spa
一、#include <opencv2\opencv.hpp>指針
包含了opencv的頭文件,這裏的hpp指的是將.cpp的實現代碼混入.h頭文件當中,定義與實現都包含在同一文件。code
二、cvLoadImage() 函數 blog
原型: | IplImage cvLoadImage(const char *filename,int iscolor = 1); |
做用: | 從文件中加載圖像。 |
參數:圖片 |
filename是要加載的文件,包括文件擴展名。 iscolor爲輔助參數項,爲正、零或負數三種值。正數表示強制性做爲彩色圖像加載,零表示做爲灰圖像加載,負數表示由文件自身決定。 |
三、cvNamedWindow() 函數ci
原型: | int cvNamedWindow(const char *name,unsigned long flags); |
做用: | 定義窗口。建立一個能夠放置圖像的窗口,被定義的窗口能夠經過他們的名字進行引用。若是已經存在這個窗口,這個函數直接返回。 |
參數:get |
name:窗口名。 flags:窗口屬性標值。1表示窗口尺寸與原圖像尺寸相同,0表示已固定的窗口顯示圖像。 |
四、cvShowImage() 函數原型
原型: | void cvShowImage(const char *name,const CvArr *image); |
做用: | 在指定的窗口中顯示圖像。 |
參數: | name:窗口名稱。 image:圖像類型指針,通常爲IplImage類型。 |
五、cvWaitKey() 函數
原型: | int cvWaitKey(int delay = 0); |
做用: | 程序延遲函數。 |
參數: | 若是delay<=0,那麼無線無限等待。不然等待delay個毫秒返回。 |
六、cvDestroyWindow() 函數
原型: | void cvDestroyWindow(const char *name); |
做用: | 銷燬窗口函數。 |
參數: | name爲將要銷燬窗口的名字,若是沒有指定名字將直接返回。 |
七、cvReleaseImage() 函數
原型: | void cvRelease(IpImage **name); |
做用: | 圖像銷燬函數。 |
參數: | 要銷燬圖像的指針。 |