zoukankan      html  css  js  c++  java
  • c++/opencv/拍照录像功能

    任务:在ubuntu下利用c++编写opencv代码实现拍照和录像功能。

    涉及的知识点:

    1、Mat类

    2、按键检测

    3、图片批量存储

    直接给代码:

    #include <opencv2/opencv.hpp>
    #include <string>
    using namespace cv;
    int main(){
    VideoCapture capture(0);
    int key;
    int i=0;    //图片数
    int j=0;    //视频数
    char pName[100];//图片文件名
    char vName[100];//视频文件名    
    while(1){
        Mat Frame;
        namedWindow("摄像头");
        capture>>Frame;
        if((key=waitKey(5))!=-1){
            if(key=='p'){
                sprintf(pName,"photo/%d.jpg",i);
                imwrite(pName, Frame);  
                while(key==waitKey(5)==-1);
                i++;
            }
            if(key=='v'){
                destroyWindow("摄像头");
                sprintf(vName,"video/%d.avi",j);    
                VideoWriter writer(vName, CV_FOURCC('M', 'J', 'P', 'G'), 25.0, Size(640, 480));
                do{   
                capture>>Frame;
                writer<<Frame;
                imshow("录像",Frame);
                }while((key=waitKey(5))==-1);
                j++;
                destroyWindow("录像");
            }
        }
        imshow("摄像头",Frame);
        waitKey(10);
        }
    return 0;

    其中按键p为拍摄照片,然后将照片存储到photo文件夹中。

    按键v为录制视频,再按其他按键可以停止录制,文件存储到video文件夹中。

    文件多存储利用了sprintf()函数:sprintf(pName,"photo/%d.jpg",i);%d占位符,每存储一张图片i加一。

  • 相关阅读:
    在windows下拆卸Linux就是这么俭朴
    打点Linux下永中Office和桌面殊效的冲突
    Banshee 0.11.4
    ubuntu8.0中文输入法
    RedFlag 6.0 硬盘安置我解
    阅读器和把持体系和用户的IQ
    初试Fedora,最后还是Xubuntu
    VMware中放置Ubuntu后鼠标滚轮标题问题办理
    GNOME 的文件经管器将片面支撑标签式阅读
    ATI显卡开启fedora9的3d后果的一些条记
  • 原文地址:https://www.cnblogs.com/oldhuang/p/10194510.html
Copyright © 2011-2022 走看看