Subversion是一個自由,開源的版本控制系統(tǒng)。在Subversion管理下,文件和目錄可以超越時空。Subversion將文件存放在中心版本庫里。這個版本庫很像一個普通的文件服務器,不同的是,它可以記錄每一次文件和目錄的修改情況。這樣就可以籍此將數(shù)據(jù)恢復到以前的版本,并可以查看數(shù)據(jù)的更改細節(jié)。正因為如此,許多人將版本控制系統(tǒng)當作一種神奇的“時間機器”。
( 英語單詞解釋: Trunk:總線 Wiki:維基
Garage:車庫,存放區(qū) // (英 ['g?rɑ?(d)?; -?d?; g?'rɑ??]美 [g??rɑ?; g??rɑd?]) )
(2)OpenCV的組織結構
OpenCV包含5個模塊,其中四個模塊如下圖所示:

除了以上4個模塊之外,還有一個CVAux模塊,該模塊一般存放一些即將被淘汰的算法和函數(shù),同時還有一些新出現(xiàn)的實驗性的算法和函數(shù)。
未來CVAux中的一些函數(shù)、算法可能會被合并到CV模塊,也可能永遠留在CVAux模塊中。
(3) VS2013+OpenCV2.4.13的配置
首先從opencv官網(wǎng)上下載opencv-2.4.13.exe,之后選擇解壓目錄為D:/PRogramFiles/,之后點擊Extract按鈕,便進行解壓,等待一段時間之后,解壓就完成了,大小大約為3個G左右。(由于此處解壓會自動生成根目錄opencv,所以不需要提前新建一個叫Opencv的文件夾)。
之后,便開始配置環(huán)境變量。(我的電腦->右鍵->屬性->高級系統(tǒng)設置->環(huán)境變量)在用戶變量上添加上opencv這個變量,值為D:/ProgramFiles/opencv/build。之后在用戶變量區(qū)的PATH上(若無,則需先創(chuàng)建PATH變量)添加值D:/ProgramFiles/opencv/build/x86/vc12/bin。
接下來在系統(tǒng)變量區(qū)的PATH變量上,添加值D:/ProgramFiles/opencv/build/x86/vc12/bin。

由于我用的是VS2013,所以對應的是vc12。(vc10對應VS2010,vc11對應vs2012,vc12對應vs2013)
至此,我們就完成了對環(huán)境變量的配置,我們打開VS2013。
點擊【新建】,創(chuàng)建項目,選擇創(chuàng)建【W(wǎng)in32控制臺應用程序】,點擊【確定】,點擊【下一步】,勾上【空項目】那個勾。
之后的步驟大致與Baidu經(jīng)驗上面講的一致,詳見
http://jingyan.baidu.com/article/acf728fd56f894f8e510a3d8.html。
以上為我自己配置opencv開發(fā)環(huán)境的一些過程,希望能給大家一些參考。
部分內容參考自:
http://jingyan.baidu.com/article/acf728fd56f894f8e510a3d8.html
http://blog.csdn.net/SherryD/article/details/51734334
關于一次配置,永久使用的問題可參照知乎網(wǎng)友的回答:
https://www.zhihu.com/question/24400428
(4)opencv AVI視頻讀取
Opencv可以用CvCreateFileCapture(const char* filename)這個函數(shù)來打開AVI文件,返回值為CvCapture*類型指針,其中參數(shù)即為AVI文件所對應的Pathname。
cvQueryFrame(CVCapture*)用來獲取Frame圖像,返回值為ipLImage*
cvWaitKey(N);//(N>0時)等待N ms,返回值為用戶按鍵的鍵值 N<=0時,等待用戶按下一個按鍵。 ESC的鍵值為27
使用CvCapture和cvLoadImage不一樣,此處IPLImage存放于CvCapture結構體中,沒有單獨開辟空間,所以不需要ReleaseImage,只需要ReleaseCapture即可。而若使用CvLoadImage,則在使用完之后,需要調用ReleaseImage(),以免造成內存泄漏;
CvCreateTrackbar() //創(chuàng)建滾動條
【slide 英 [sla?d] 美 [sla?d] vi.滑落;下跌;打滑;[棒球]滑壘 n. 幻燈片;降低】
為了使我們的程序可讀性更強,我們可在所有的全局變量前面加上g_
【滾動條TrackBar】
cvCreateTrackbar("Track_bar","Video",&g_slider_postion, frames, onTrackbarSlide);
g_slider_postion為事先定義好的int (32bits整形變量),用來記錄TrackBar的滑動位置,創(chuàng)建TrackBar時,就已經(jīng)和TrackBar關聯(lián)好了。
frames為視頻總幀數(shù),可通過CvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT)獲取到。
當Bar滑動時,OnTrackBarSlide回調函數(shù)(需要自己編寫,若無,該處可設為NULL)即被調用,g_slider_postion作為實參被傳遞過去,通過cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);
每顯示一幀圖像,可以讓g_slider_postion++,再調用cvSetTrackbarPos("Track_bar","Video", g_slider_postion),這樣便事先了滾動條隨著視頻播放而不斷移動了。
(5) CvLoadImgae函數(shù)
cvLoadImage()函數(shù)原型:
cvLoadImage(constchar* filename,int iscolorCV_DEFAULT(CV_LOAD_IMAGE_COLOR))
第1個參數(shù)是圖像文件名,如”D:/pic.jpg”
第2個參數(shù)是讀取圖像的方式,-1 表示按照圖像本身的類型來讀取,1表示強制彩色化,0 表示強制灰值化
(6)讀取AVI視頻并播放,且?guī)в袧L動條的程序代碼實現(xiàn)如下:
#include<iostream>#include "highgui.h"/*該程序實現(xiàn)了對Test.avi的讀取播放,并實現(xiàn)了進度滾動條的功能。(播放過程中可按ESC鍵退出播放)*/using namespace cv;CvCapture* g_capture = NULL;int g_slider_postion = 0;//滾動條滑動位置記錄變量,32位整數(shù)值void onTrackbarSlide(int pos) //滾動條滾動時的回調函數(shù){ cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);}int main(int argc,char** argv){ g_capture = cvCreateFileCapture("Test.avi");//讀入AVI,創(chuàng)建CvCapture結構于AVI文件開頭. cvNamedWindow("Video", CV_WINDOW_AUTOSIZE); int frames =(int) cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);//得到AVI視頻總幀數(shù),為g_slider_pos的max值 if (frames != 0) { cvCreateTrackbar("Track_bar", "Video", &g_slider_postion, frames, onTrackbarSlide); //當視頻總幀數(shù)可以獲取時,創(chuàng)建TrackBar }//g_slider_postion記錄滑動位置,frames為滑動位置最大值,onTrackbarSlide為回掉函數(shù) char c; IplImage *img = NULL; while (1) { img = cvQueryFrame(g_capture); //讀入一幀圖片至CvCapture結構中 if (!img) break;//讀取結束,Break cvShowImage("Video", img); g_slider_postion++; cvSetTrackbarPos("Track_bar", "Video", g_slider_postion); c = cvWaitKey(33); //幀率為 30幀/s 1幀=33Ms 此處為人為指定幀率,也可以通過CvCapture結構體中成員精確控制幀率 if (c == 27) break; //27是ESC的ASCII鍵值 } cvDestroyWindow("Video"); cvReleaseCapture(&g_capture); return 0;}(7)在VS2013中直接編譯運行上述程序時,出現(xiàn)了一個Error
error C4996:'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online helpfor details.
由于CV模塊中某些頭文件中包含了fopen這個函數(shù),所以在VS2013開發(fā)環(huán)境下,會報錯fopen不安全(我嘗試過將庫文件里報錯的地方fopen改為fopen_s,但是會導致更多的錯誤,因此我選擇了禁用安全警告)只需選擇【項目】->【屬性】->【c/c++】->【預處理器】->【預處理定義】->【點擊下拉按鈕】,之后添加_CRT_SECURE_NO_WARNINGS的定義即可。
禁用安全警告之后,編譯運行無誤,程序達到了預期的效果:

新聞熱點
疑難解答