opencv代码段1

test camera

camera.cpp

#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main(int argc, char** argv)
{
    if(argc != 2){
        cerr << "Usage: ./camera [camera id]"   << endl
           << "Example: ./camera 0" << endl;
        return 1;     
    }

    cout << "Press \"c\" to capture picture."   << endl
           << "Press \"q\" to exit." << endl;
    //cv::VideoCapture capture("bike.avi");

    int camera_id = atoi(argv[1]);
    cv::VideoCapture capture(camera_id);
    if(!capture.isOpened()){
        cerr << "Can not open camera" << endl;
        return 1;
    }

    double rate= capture.get(CV_CAP_PROP_FPS);
    bool stop(false);
    cv::Mat frame; 
    cv::namedWindow("Camera");

    int delay= 1000/rate;
    int count = 0;
    while (!stop) {
        if (!capture.read(frame))
            break;

        cv::imshow("Camera",frame);

        char key = cv::waitKey(delay);

        switch(key){
        case 'c':{
            stringstream ss;
            ss << count++;
            string filename = ss.str(); 
            filename += ".jpg";
            cv::imwrite(filename, frame);
            cout << "save " << filename << endl;
            break;
        }
        case 'q':{
            stop = true;
            break;
        }
        default:
            break;
        }
    }
    capture.release();
    cv::destroyAllWindows();
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(camera)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O3 -std=c++11")

find_package( OpenCV REQUIRED )
include_directories(${OpenCV_INCLUDE_DIRS})

add_executable( camera camera.cpp)
target_link_libraries( camera ${OpenCV_LIBS})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值