OpenCV视频操作基础

读取视频

使用#include

#ifndef __OPENCV_ALL_HPP__
#define __OPENCV_ALL_HPP__

#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"
#include "opencv2/flann/miniflann.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/photo/photo.hpp"
#include "opencv2/video/video.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/ml/ml.hpp"
#include "opencv2/highgui/highgui_c.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/contrib/contrib.hpp"

#endif

这里写图片描述

#include<opencv2\opencv.hpp>
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号

int main(){
    VideoCapture capture("E:\\Homework\\Video\\iss06-10-25_0.avi");
    //读取摄像头
    //VideoCapture capture(0);

    while (1)
    {
        Mat frame,edges,grayImg;//定义一个 Mat 变量,用于存储每一帧的图像
        capture >> frame;//读取当前帧

        if (frame.empty())//若视频播放完成,退出循环
        {
            break;
        }
        cvtColor(frame, grayImg, CV_BGR2GRAY);
        Canny(grayImg, edges, 3, 9, 3);
        imshow("avi", frame);
        imshow("Canny", edges);
        waitKey(1);
    }
    return 0;

}

这里写图片描述

视频降噪

#include<opencv2\opencv.hpp>
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号

int main(){
    VideoCapture capture("E:\\Homework\\Video\\iss06-10-25_0.avi");
    //读取摄像头
    //VideoCapture capture(0);

    while (1)
    {
        Mat frame,edges,grayImg;//定义一个 Mat 变量,用于存储每一帧的图像
        capture >> frame;//读取当前帧

        if (frame.empty())//若视频播放完成,退出循环
        {
            break;
        }
        cvtColor(frame, grayImg, CV_BGR2GRAY);
        blur(grayImg, grayImg, Size(5, 5));
        Canny(grayImg, edges, 3, 9, 3);
        imshow("avi", frame);
        imshow("降噪处理Canny", edges);
        waitKey(1);
    }

    return 0;

}

这里写图片描述

读取摄像头

#include "opencv2\opencv.hpp"
using namespace cv;//包含cv命名空间,所以省去了cv::Mat前的符号

int main(){
    //读取摄像头
    VideoCapture capture(0);

    while (1)
    {
        Mat frame, edges, grayImg;//定义一个 Mat 变量,用于存储每一帧的图像
        capture >> frame;//读取当前帧

        //此句代码的 OpenCV2 版为:
        //cvtColor(frame, grayImg, CV_BGR2GRAY);
        //此句代码的 OpenCV3 版为:
        cvtColor(frame, grayImg, COLOR_BGR2GRAY);//应用无法正常启动0xc000007b,这是Lib包含了X86和X64,opencv_world300.dll和opencv_world300d.dll要放在SysWOW64文件夹里
        blur(grayImg, grayImg, Size(5, 5));
        Canny(grayImg, edges, 3, 9, 3);
        imshow("avi", frame);
        imshow("降噪处理Canny", edges);
        //waitKey(1);
        if (waitKey(30) >= 0) break;//延时30ms,按空格键终止
    }

    return 0;

}

针对OpenCV3出现这个问题:
这里写图片描述
解决方法:

这是Lib包含了X86和X64,opencv_world300.dll和opencv_world300d.dll要放在SysWOW64文件夹里
这里写图片描述
这里写图片描述

成功运行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何以问天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值