利用背景建模检测运动物体

#include "cv.h"
#include "highgui.h"
#include <stdio.h>
int main(int argc, char** argv) {IplImage* pFrame = NULL;IplImage* pFrImg = NULL;IplImage* pBkImg = NULL;CvMat* pFrameMat = NULL;CvMat* pFrMat = NULL;CvMat* pBkMat = NULL;CvCapture* pCapture = NULL;int nFrmNum = 0;cvNamedWindow("video", 1);cvNamedWindow("background", 1);cvNamedWindow("foreground", 1);cvMoveWindow("video", 30, 0);cvMoveWindow("background", 360, 0);cvMoveWindow("foreground", 690, 0);//打开视频文件  if (!(pCapture = cvCaptureFromFile("沙画.mp4"))) {fprintf(stderr, "Can not open video file video.avi\n");return -2;}//逐帧读取视频  while (pFrame = cvQueryFrame(pCapture)) {nFrmNum++;// 第一帧需要申请内存并初始化  if (nFrmNum == 1) {pBkImg = cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U, 1);pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U, 1);pBkMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);pFrMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);// 转换为单通道图像再处理  cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);cvConvert(pFrImg, pFrameMat);cvConvert(pFrImg, pFrMat);cvConvert(pFrImg, pBkMat);}else {cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);cvConvert(pFrImg, pFrameMat);// 高斯滤波平滑图像  cvSmooth(pFrameMat, pFrameMat, CV_GAUSSIAN, 3, 0, 0);// 当前帧与背景图相减  cvAbsDiff(pFrameMat, pBkMat, pFrMat);// 二值化背景图  cvThreshold(pFrMat, pFrImg, 60, 255.0, CV_THRESH_BINARY);//进行形态学滤波,去除噪声. 效果不好,将行车都作为噪声去除了  //cvErode(pFrImg, pFrImg, 0, 1);  //cvDilate(pFrImg, pFrImg, 0, 1);  // 更新背景  cvRunningAvg(pFrameMat, pBkMat, 0.003, 0);// 将背景转换为图像格式,用于显示  cvConvert(pBkMat, pBkImg);cvShowImage("video", pFrame);cvShowImage("background", pBkImg);cvShowImage("foreground", pFrImg);if (cvWaitKey(2) >= 0)break;}}cvDestroyWindow("video");cvDestroyWindow("background");cvDestroyWindow("foreground");cvReleaseImage(&pFrImg);cvReleaseImage(&pBkImg);cvReleaseMat(&pFrameMat);cvReleaseMat(&pFrMat);cvReleaseMat(&pBkMat);return 0;
}

OpenCV学习之利用背景建模检测运动物体相关推荐

  1. OpenCV中高斯混合背景建模算法汇总

    2019独角兽企业重金招聘Python工程师标准>>> 引用地址:http://blog.csdn.net/chuhang_zhqr/article/details/51060745 ...

  2. opencv学习—简单方法用于斑马线检测(Python)

    opencv学习-简单方法用于斑马线检测(Python) 目录 opencv学习-简单方法用于斑马线检测(Python) 1.读取原图像并将图像灰度化 2.通过高斯滤波去除噪声信息 3.阈值分割 4. ...

  3. 树莓派摄像头检测运动物体

    文章目录 一.安装OpenCv 1.在树莓派安装运行在Python2上的OpenCV 2.在树莓派安装运行在Python3上的OpenCV 二.运动目标检测 源代码 一.安装OpenCv 检测运动物体 ...

  4. OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc

    OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...

  5. python+OpenCV笔记(三十七):检测运动物体——使用MOG/KNN背景差分器

    目录 一.基本背景差分器 二.MOG背景差分器 流程 代码编写 三.KNN背景差分器 目前,许多运动检测技术都是基于简单的背景差分概念的,即假设摄像头(视频)的曝光和场景中的光照条件是稳定的,当摄像头 ...

  6. opencv学习十六:圆检测

    圆检测 原理 圆周上任意三点所确定的圆,经Hough变换后在三维参数空间应对应一点.遍历圆周上所有点,任意三个点所确定的候选圆进行投票.遍历结束后,得票数最高点(理论上圆周上任意三点确定的圆在Houg ...

  7. 【深度学习】利用CNN来检测伪造图像

    随着像Facebook和Instagram这样的社交网络服务的出现,在过去十年中产生的图像数据量有一个巨大增加.使用图像(和视频)等处理软件GNU Gimp,Adobe Photoshop创建修改过的 ...

  8. OpenCV学习代码记录——轮廓(contour)检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  9. 【opencv 学习笔记】harris焦点检测和原理学习笔记

    参考博客: 1.https://blog.csdn.net/with__sunshine/article/details/88954489 2.https://www.cnblogs.com/djrc ...

最新文章

  1. axure 点击按钮弹出框_Axure 教程:web网站原型设计技巧的分享
  2. Python 之 Pandas (三)选择数据
  3. Ecplise中配置Tomcat7服务器
  4. Python 模型持久化
  5. win10c语言错误,win10打开程序提示错误状态0xc0000020的原因和解决方法
  6. 报表引擎 - 数据模型
  7. Excel 2016新增函数之IFS
  8. keycloak授权流程详解
  9. Flink 异步IO
  10. matlab 单输入单输出线性时不变系统,试验线性时不变系统的时域分析及MATLAB实现.DOC...
  11. Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得
  12. UMD 被淘汰了吗?不考虑的 UMD 的库如何在纯 UMD 前端项目中运行?
  13. Payment支付平台API接口文档
  14. 微信可以用邮箱吗?邮箱无法分享到微信怎么办?微信邮箱从哪找呢
  15. python农历_用python计算农历/阴历假日
  16. 有影响力的数据挖掘软件列表
  17. P6 Vue双向绑定 v-model
  18. 关于ext2.0基本引入说明引入过多开发环境效验太多老火
  19. 【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护
  20. SPF 记录是什么以及它如何工作:SPF 记录全解释

热门文章

  1. MTA网络基础考试准备指南
  2. ccmall商城区块链,互联网的新商机,快速崛起
  3. helloWord执行过程
  4. ARP断网攻击和防御
  5. 学习石Java容易入门的三类人,看看有你吗?
  6. 怎么安装PDF转换器绿色版?PDF能转换成Excel格式吗?
  7. 计算机房配备灭火器,计算机房应配备什么灭火器
  8. 8102年倒计时,9102年放假时间表已出!
  9. 去掉桌面快捷方式箭头 , 保存成bat 运行。
  10. 计算机国二大连考点,CFA一二三级的大连考点是在哪!