使用visual studio 2012 編譯opencv2.4.9

來源:互聯網
上載者:User

標籤:

  最近,由於需要從opencv源碼部分對opencv中的某個函數進行修改,以提升演算法的速度,因此一直在嘗試使用vs2012來編譯opencv。期間不乏多次的失敗。今天通過實驗發現了自己編譯的opencv庫終於可以使用了,不再出現之前出現的連結錯誤。現將編譯過程記錄如下,希望可以給需要的人提供思路和協助。如發現錯誤之處,也請留言指出,謝謝。

  首先,來看看opencv的安裝目錄(如),可以發現有兩個子檔案夾。其中build檔案夾是已經編譯好的,可以直接使用的,而source檔案夾顧名思義就是opencv所有的的源碼了。但是該源碼並不是一個VS的工程檔案,因此沒法將整個整個源碼像開啟一個vs工程一樣將其開啟:

  

  我們現在要做的第一步就是將source中的源碼“解包”(“解包”是什麼意思我現在也沒有弄清楚,在某篇部落格中看到的)成一個VS2012的項目。需要用到的工具是Cmake。

    (1)下載並安裝好cmake,如所示。(我使用的是3.0版本)

    

 

 

    (2)在cmake中選擇源碼路徑,並選擇將要產生的opencv工程的解決方案的路徑。

    

    (3)路徑設定好之後,點擊Configure按鈕。出現如下情況。根據自己的vs版本選擇對應的即可。(我的是vs2012):

    

    (4)點擊finish後cmake開始工作,結束後出現configure down字樣:

    

    (5)再次點擊一次Configure,紅色部分消失,再次出現configure down:

    

    (6)最後點擊Generate,出現Generating down,完成了opencv的解包:

    

    (7)來看看目標路徑中都產生了什麼。這就是我們通過cmake想要得到的vs2012的解決方案。開啟Opencv.sln即可在vs2012中開啟opencv的整個項目(注意,當前產生的目錄中沒有bin和lib這兩個目錄):

    

  通過上面一步一步詳細的介紹,我門現在終於可以飽覽opencv源碼真容了。我們開啟Opencv.sln,在vs2012中開啟opencv的項目:

  

  可以看到,vs已經成功載入了opencv的整個項目。在解決方案上右鍵,並在快顯功能表中點擊產生解決方案,等待幾分中的時間:

  待產生成功後,我們再來看看opencv項目目錄,可以看到目錄中多了兩個檔案夾lib和bin。這兩個目錄就是我們自己編譯的opencv的庫:

  

  將bin和lib兩個檔案夾下的Debug目錄下的檔案全部拷貝到opencv的安裝目錄下,覆蓋掉原來的lib和dll檔案(這樣的話就不用重新設定環境了)

  

  編寫一段測試程式(我在imshow源碼中增加了一個cout<<“this is a test”<<endl;語句):

#include<opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main() { int i;   Mat   img = imread("test.jpg");    if (img.empty())    {    fprintf(stderr,"Error:load image failed.");    system("pause");   return -1;    }    namedWindow("image",CV_WINDOW_AUTOSIZE);     imshow("image",img);   waitKey();    system("pause");   return 0; }

  運行後結果如下,可以看到,控制台中輸出了this is a test!:

  

  

  至此,整個opencv的編譯過程到此結束。希望可以給大家協助!

 

參考部落格:

http://www.tuicool.com/articles/f6ZBZv

 

原創博文,轉載請註明出處:http://www.cnblogs.com/xiongmao-cpp/

使用visual studio 2012 編譯opencv2.4.9

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.