OpenCV学习笔记之图像处理与人脸检测

本文是OpenCV学习笔记,介绍了如何访问摄像头和读取图像,包括卡通化图像的处理、使用Laplacian和Scharr滤波器进行边缘检测,以及人脸特征点和姿态的检测。通过cv::VideoCapture、cv::CascadeClassifier和cv::face::Facemark进行实时人脸检测,详细阐述了每个步骤的关键代码和注意事项。
摘要由CSDN通过智能技术生成

1.1访问摄像头或者读取图片和视频流: 

        在OpenCV中,通过cv::VideoCapture对象的open()方法可访问摄像头或者相机设备。

VideoCapture初始化:

        bool VideoCapture::open(const string& filename)//开视频文件

        bool VideoCapture::open(int device) //开摄像头

        bool VideoWriter::isOpened() //若初始化成功返回true,失败返回false

imread与imshow:

        Mat cv::imread ( const String & filename, int flags = IMREAD_COLOR )

        参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)

        参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关

        void imshow(const string& winname, InputArray mat);

        参数1 winname,生成的窗口的名称

        参数2 mat 懂的都懂

        void nameWindow(const string& winname,int flags = WINDOW_AUTOSIZE) //新建一个窗口

        参数1:新建的窗口的名称。自己随便取。

        参数2:窗口的标识,一般默认为WINDOW_AUTOSIZE 。

        WINDOW_AUTOSIZE 窗口大小自动适应图片大小,并且不可手动更改。(上面图1就是使用的它)

        WINDOW_NORMAL 用户可以改变这个窗口大小(上面图2就是使用的它)

        WINDOW_OPENGL 窗口创建的时候会支持OpenGL
 

        int cv::waitKey ( int delay = 0 )         //等待一个按键,等待的时间取决于参数,0则无限等待,返回按键的ASCII值

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
void main(int argc,char *argv[]){
    auto cameraNumber = 0;
    if(argc > 1){
        cameraNumber = atoi(argv[1]);
    }
    //这里尝试去打开摄像头设备
    VideoCapture camera;
    camera.open(cameraNumber);
    if(!camera.isOpened()){
        cerr<<"ERROR : cannot open the camera"<<endl;
        exit(1);
    }
    //设置摄像头的分辨率 640 * 480
    camera.set(CV_CAP_PROP_FRAME_WIDTH,640);
    camera.set(CV_CAP_PROP_FRAME_HEIGHT,480);
}

        由于版本变量的更名,若使用CV_CAP_PROP_FRAME_WIDTH发生报错,则去掉前面的CV_即可。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值