三帧间差分法

2024-06-04 04:32
文章标签 差分法 三帧

本文主要是介绍三帧间差分法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

三帧差法
目的:解决帧间差分法的“双影”问题。算法步骤如下:
(1) Det1=framePre-framePrePre;
(2) Det2=frameNow-framePre;
(3) frameDet=Det1&Det2;
(4)形态学处理(如dilate).

************************************************************************/
#include<opencv2/core/core.hpp>  
#include<opencv2/imgproc/imgproc.hpp>  
#include<opencv2/highgui/highgui.hpp>  
#include <opencv2/video/video.hpp>
#include <iostream>
using namespace cv;
using namespace std; cv::Mat frame;
cv::Mat result;
char image_name[25];//三帧间差分
int main()
{int i=0;cv::Mat framePrePre, framePre, frameNow, frameDet;cv::Mat contours, contoursInv;cv::Mat Det1, Det2;VideoCapture capture("Crowd-Activity-All.avi");if (!capture.isOpened()){return 0;}double videoFPS = capture.get(CV_CAP_PROP_FPS);  //获取帧率  double videoPause = 1000 / videoFPS;std::cout << videoFPS << endl;std::cout << videoPause << endl;capture >> framePrePre;capture >> framePre;cvtColor(framePrePre, framePrePre, CV_RGB2GRAY);cvtColor(framePre, framePre, CV_RGB2GRAY);int save = 0;bool stop(false);while (!stop){capture >> frameNow;if (frameNow.empty() || waitKey(videoPause) == 27){break;}cvtColor(frameNow, frameNow, CV_RGB2GRAY);Mat Det1;Mat Det2;absdiff(framePrePre, framePre, Det1);  //帧差1  absdiff(framePre, frameNow, Det2);     //帧差2  threshold(Det1, Det1, 0, 255, CV_THRESH_OTSU);  //自适应阈值化  threshold(Det2, Det2, 0, 255, CV_THRESH_OTSU);bitwise_and(Det1, Det2, frameDet);Mat element = getStructuringElement(0, Size(3, 3));  //膨胀核  dilate(frameDet, frameDet, element);    //膨胀  dilate(frameDet, frameDet, element);    framePrePre = framePre;framePre = frameNow;imshow("Video", frameNow);imshow("Detection", frameDet);sprintf(image_name, ".\\three frames subtraction method_image\\%d.jpg", ++i);imwrite(image_name, frameDet);}return 0;
}

测试通过!

这篇关于三帧间差分法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1029062

相关文章

强化学习:时序差分法【Temporal Difference Methods】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程,个人觉得赵老师的课件深入浅出,很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 第三章 贝尔曼最优方程 第四章 值迭代和策略迭代 第五章 强化学习实例分析:GridWorld 第六章 蒙特卡洛方法 第七章 Robbins-Monro算法 第八章 多臂老虎机 第九章 强化学习实例分析:CartPole

偏微分方程算法之九点紧差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标         我们已经在专栏中介绍了椭圆型偏微分方程的五点菱形差分格式,这里我们继续以该方法为背景,探讨如何提高五点法的精度,即从二阶精度提升到四阶精度。         研究目标现继续以矩形区域内的Poisson方程的边值问题: 二、理论推导         提高差分格式精度的一种有效方法是紧差分

偏微分方程算法之五点菱形差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标         上个专栏我们介绍了双曲型偏微分方程的主要算法及实现。从今天开始,我们在新的专栏介绍另一种形式偏微分方程-椭圆型的解法。         研究目标选取经典的二维椭圆型方程(也称泊松Poisson方程):         当f=0时,就是著名的拉普拉斯(Laplace)方程。椭圆型方程在流体

偏微分方程算法之一阶双曲差分法

目录 一、研究目标 二、理论推导 2.1 引言 2.2 迎风格式 2.3 完全不稳定差分格式 2.4 蛙跳格式(Leapfrog) 2.5 Lax-Friedrichs格式 2.6 Lax-Wendroff格式 2.7 Beam-Warming格式 2.8 隐格式 2.9 Courant-Friedrichs-Lewy条件(CFL条件)  三、算例实现 3.1 迎风格式

[C#]OpenCvSharp使用帧差法或者三帧差法检测移动物体

关于C++版本帧差法可以参考博客 [C++]OpenCV基于帧差法的运动检测-CSDN博客https://blog.csdn.net/FL1768317420/article/details/137397811?spm=1001.2014.3001.5501 我们将参考C++版本转成opencvsharp版本。 帧差法,也叫做帧间差分法,这里引用百度百科上的一段定义: 帧间差分法是一种通过

基于离散差分法的复杂微分方程组求解matlab数值仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述       基于离散差分法的复杂微分方程组求解.“连续微分方程”到“离散微分方程”到“差分方程”,离散微分方程,变成差分方程。建立差分方程时,时间采用一阶显格式,空间采用一阶偏心差分格式。 2.测试软件版本以及运行结果展示 MATLAB2022a版本

【目标检测】基于matlab GUI差分法运动目标检测【含Matlab源码 1284期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划(Matlab) 神经网络预测与分类(Matlab) 优化求解(Matlab) 语音处理(Matlab

差分法(面试重要!important)

链接:https://ac.nowcoder.com/acm/contest/10323/A 来源:牛客网 牛牛现在在花园养了n棵树,按顺序从第1棵到第n棵排列着。牛牛每天会按照心情给其中某一个区间的树浇水。例如如果某一天浇水的区间为[2,4],就是牛牛在这一天会给第2棵,第3棵和第4棵树浇水。树被浇水后就会成长,为了简化问题,我们假设在初始时所有树的高度为0cm。每过去一天树会自然成长1cm,

差分法详解

前言 差分算法适用于一些需要对数组和序列进行增减、查询和更新操作的问题,可以提高计算效率和降低存储空间的需求。今天我将带大家学习如何使用差分法,会以例题来带大家使用差分法以增进理解。话不多说让我们开始吧! 文章目录 一维差分尾声 一维差分 首先我们需要创建一个数组arr表示差分数组,然后再创建一个arrsum数组用来表示arr的前缀和。 即arr[i] = arrsum[i]

python实现帧间差分法

原理 帧间差分法是对时间上连续的两帧图像进行差分运算,得到差分图像 为直观表达,我用两帧相邻视频帧举例子,具体代码如下: import cv2def operate(img):img_Guassian = cv2.GaussianBlur(img, (5, 5), 0) # 高斯滤波去除噪声gray = cv2.cvtColor(img_Guassian, cv2.COLOR_BGR2GRA