视频处理三帧差分法简易代码
来源:互联网 发布:mac battlenet 打不开 编辑:程序博客网 时间:2024/06/06 13:19
#include "stdafx.h"
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
const int threshold1 = 25;
const int threshold2 = 25;
int main()
{
VideoCapture cap(0);
namedWindow("test", 0);
if (!cap.isOpened())
{
cout << "open is file " << endl;
return 0;
}
//存三帧图片
Mat img;
Mat preimg;
Mat nextimg;
int flag;
Mat gray1, gray2, gray3;
//存两次相减的图片
Mat gray_img1, gray_img2;
Mat gray_img31, gray_img32;
Mat gray_img13, gray_img12;
Mat gray_img21, gray_img23;
//显示前景
Mat gray;
cap >> preimg;
cvtColor(preimg, gray1, CV_BGR2GRAY);
cap >> img;
cvtColor(img, gray2, CV_BGR2GRAY);
for (;;)
{
cap >> nextimg;
cvtColor(nextimg, gray3, CV_BGR2GRAY);
//第二帧减第一帧
subtract(gray2, gray1, gray_img21);
subtract(gray1, gray2, gray_img12);
add(gray_img21, gray_img12, gray_img1);
subtract(gray3, gray2, gray_img32);
subtract(gray2, gray3, gray_img23);
add(gray_img32, gray_img23, gray_img2);
for (int i = 0; i<gray_img1.rows; i++)
{
for (int j = 0; j<gray_img1.cols; j++)
{
if (abs(gray_img1.at<unsigned char >(i, j)) >= threshold1)
gray_img1.at<unsigned char>(i, j) = 225;
else gray_img1.at<unsigned char>(i, j) = 0;
if (abs(gray_img2.at<unsigned char >(i, j) >= threshold2))
gray_img2.at<unsigned char>(i, j) = 225;
else gray_img2.at<unsigned char>(i, j) = 0;
}
}
bitwise_and(gray_img1, gray_img2, gray);
dilate(gray, gray, Mat());
erode(gray, gray, Mat());
imshow("test", gray);
namedWindow("test1", 0);
imshow("test1", nextimg);
gray1 = gray2.clone();
gray2 = gray3.clone();
if (waitKey(30) >= 0) break;
}
return 0;
}
0 0
- 视频处理三帧差分法简易代码
- VLC视频处理代码浅析
- 处理视频流的代码
- 简易视频程序
- 简易视频播放器
- 简易视频播放器
- 简易视频播放器
- 简易视频播放器
- openCV 视频读取、处理、输出操作 代码实例
- 视频二值化处理基本方法以及简单代码实现
- Android视频开发简易方法
- Android简易视频播放器
- 简易的灰度处理
- 简易的灰度处理
- 成绩处理简易版
- 视频处理
- 视频处理
- 视频处理
- 查看mysql连接进程及连接用户
- PostgreSQL数据库 OLTP高并发请求性能优化
- 黎活明老师的建议
- html <meta http-equiv="refresh" content="0; url=">什么意思?
- Chrome NET::ERR_CERT_AUTHORITY_INVALID 错误分析及处理
- 视频处理三帧差分法简易代码
- .NET学习笔记(一)————认识.NET平台与C#
- PS学习笔记之初识分辨率
- 我亲爱的老师们(*^__^*)
- Android开发:shape和selector和layer-list的(详细说明)
- PostgreSQL index scan enlarge heap page scans when index and column correlation small
- simple introduction for bash
- HDOJ 4496 D-City(并查集变形,逆序 删边)
- 黑马程序员一一面向对象