2016年3月15日 星期二

Capture Image from Camera using OpenCV

Capture Image from Camera using OpenCV

一般的影像來源分為兩種,一個是圖片(image),一個就是串流,雖然串流(stream)也是會切成一張一張的影像在做影像操作。
而串流(stream)又可分為視訊串流跟影片串流,這裡介紹如何從視訊裝置得到串流,再切成影像進行操作。

範例環境
- Visual Studio 2010
- Windows 7
- OpenCV 2.4.5

C API

#include "stdafx.h"
#include <highgui.h>
#include <cv.h>

void main()
{
    cvNamedWindow( "window", 1);

    IplImage *frame;
    CvCapture *capture;
    capture = cvCaptureFromCAM(0);  
    while(true){
        frame = cvQueryFrame(capture);
        cvShowImage("window", frame);   

        cvWaitKey(30);
    }
    cvReleaseImage(&frame);
}

C++ API

#include "stdafx.h"
#include <highgui.h>
#include <cv.h>

int main()
{
    cv::Mat frame;
    cv::VideoCapture cap(0);
    if(!cap.isOpened()){
        return -1;
    }
    while(true){   
        if(!cap.read(frame))
            break;
        cv::Mat src = cv::Mat(frame);
        cv::imshow( "window",  src );
        cv::waitKey(30);
    }
}

編譯成功後,執行將會看到從視訊擷取的串流畫面
capture image from webcam

更多OpenCV文章請參考:OpenCV Tutorial (學習筆記)

0 意見:

張貼留言