用opencv + vs2013來開啟電腦網路攝影機

來源:互聯網
上載者:User

前幾天用java的JMF來開啟網路攝影機,現在我用opencv來開啟網路攝影機。下面是操作的具體細節

 

1.下載和安裝opencv

在官網opencv.org  下載   OpenCV windows版下載下來。(我下載的是opencv-3.1.0.exe),下載後安裝自動解壓,選擇安裝位置就行了。

2.配置環境變數

  電腦 > 右鍵屬性> 進階系統設定 >  環境變數>  系統變數

Path 下添加opencv 的路徑  如:…… opencv\build\x64\vc12\bin;

Opencv 3.1.0 版本只有x64位的,這裡的vc12 = vs2013 ,根據自己安裝的vs版本來選擇

3.工程包含目錄配置

開啟vs 2013 ,檔案>建立>項目  > visual C++   >Win32 控制台應用程式

 

點擊剛才建立的項目右鍵 >  添加>  建立項


 

在視圖 >其他視窗> 開啟屬性管理員

 

點擊項目->Debug|Win32->Microsoft.Cpp.Win32.User(右鍵屬性,或者雙擊)即可開啟屬性頁面。

開啟屬性頁面後,就是一番配置了。首先是在

一.通用屬性 > VC++目錄  >  包含目錄 

添加opencv安裝目錄中的... \opencv\bulid\include

二.  通用屬性  > VC++目錄  > 庫目錄

添加   ....opencv\build\x64\vc10\lib

三. 通用屬性  > 連結器 > 輸入 >附加的依賴項

opencv_world310d.lib   

 

如果編譯時間出現; 模組電腦類型“X86”與目標電腦類型“x64”衝突

解決辦法:

點擊項目右鍵 >  屬性 > 把平台選為X64> 組態管理員 > 活動解決方案平台 選X64  (沒有就建立)> 然後在連接器 >進階  > 目標電腦 (MachineX64 )

配置完有時候需要重啟電腦才生效

 

 

下面是開啟網路攝影機的代碼:

整體思路:

1)添加包含檔案opencv

2)建立對象,擷取視頻流

3)建立視窗,把擷取的視頻流顯示出來

4)如果關閉,就釋放擷取視頻流的對象

#include <opencv2\core\core.hpp>

#include <opencv2\highgui\highgui.hpp>

#include <opencv2\opencv.hpp>

using namespace cv;//命名空間

int main()

{

    VideoCapture capture(0);//建立VideoCapture對象

    if (!capture.isOpened())//判斷是否開啟網路攝影機,開啟isOpened返回ture

        return 1;

    bool stop(false);//定義一個用來停止迴圈的變數

    Mat frame;//用來存放讀取的視頻序列,承載每一幀的映像 ,Mat類是用於儲存映像以及其他矩陣資料的資料結構

  

    namedWindow("Camera");//建立一個視窗,顯示每一幀的視窗

    while (!stop)

    {

        if (!capture.read(frame))//如果沒有讀取到就中斷

        {

            break;

        }

        imshow("Camera", frame);//正常顯示,把擷取的視頻填充到視窗中

       

        char c = cvWaitKey(33);

        if (c == 32)break; //使用空格鍵來停止ASCII 為32

    }

    capture.release();//釋放

}

  



對於JMF  和opencv 來開啟網路攝影機,這兩個操作方法我都嘗試過,對於二者我說說自己的一些想法,在沒有做這個項目的時候,我認為很簡單的,但事實好像不是這樣,因為沒有頭緒,一切都是在網上找的資料,找了很多資料,又發現很多用不了,那個時候才感覺困難重重。但是還好我還是找到瞭解決方法。二者的環境安裝配置都是比較麻煩的。我是這樣認為的。對於JMF來說opencv感覺更不錯,代碼簡潔更清晰。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.