请求帮助 实现 背景差减法 、帧间差分法、光流法 的算法,C++或者matlab都行,现成的源码都行
建议用opencv库
环境搭建:
/album/2a138328497ce6074b134f64.html
矩阵操作:
/s/blog_afe2af380101bqhz.html
代码:
absdiff(frame, prveframe, differframe);//获取差分帧 differframe= frame-prveframePr怎么补帧?
工具/原料
一台电脑
方法/步骤
1、首先将视频素材倒入pr中。
2、鼠标右键选择【时间/持续速度】。
3、选择【帧采样】,点击确定。
4、接着再次鼠标右键,选择【时间/持续速度】。
5、将速度改为30%,将【帧采样】切换成【光流法】。
6、可以看到pr已经帮我们自动补帧,视频也不会卡顿啦!光流法一定需要rgb吗 二值图
是的! 在计算机 图像中,颜色值是由 8位 16位 32位等 二进制数来表示的! 他们都是整数! 但是在模拟信号中的RGB 为模拟值! 在AD转换中依旧为 二进制数(也是整数)!怎么跟踪 好好回答 实际找专业
视觉跟踪其实就是利用图像处理技术出图像序列中运动的那个物体。
特征是必须的,没有特诊就没有跟踪的依据,但是可以选择的特征很丰富,原理各部相同没有相关性。
你这里的光流法是利用时间上的统计特性,至于你所谓的特征光流法就看你自己做的什么东西什么要求了,别人不知道你要做什么,什么特征。
视频图像序列检测方法很多,无法回答
第四题大多的图像处理书上都有,建议你好好看看书
第五题更回答不出来了,原因前面说了。
基于你的问题,我认为,这个可能是硕士论文吧(除非是普通的背景生成可以给本科做做)!首先你要好好的看书,这些问题不应该来问而是自己学的,这是最基本的学习研究能力。
第二,你的问题问的太大了,显得很不专业,你的问题找教授来也无从下口回答你。
建议你看数字图像处理的书,外面很多,冈萨雷斯的可能比较容易上手。
讲解的比较通俗易懂,利于你掌握基本知识。
另外你应该在具体方法上大量查阅文献资料(不要说不会查),这些会是一系列的数学问题,别人帮不了你,即使你的导师(除非你是本科生,导师给你的基本都是有成型的东西)。
你论文中必须详细描述的。
高斯模型的具体介绍
展开全部
混合高斯模型:
运动检测的一般方法
目前,运动物体检测的问题主要分为两类,摄像机固定和摄像机运动。
对于摄像机运动的运动物体检测问题,比较著名的解决方案是光流法,通过求解偏微分方程求的图像序列的光流场,从而预测摄像机的运动状态。
对于摄像机固定的情形,当然也可以用光流法,但是由于光流法的复杂性,往往难以实时的计算,所以我采用高斯背景模型。
因为,在摄像机固定的情况下,背景的变化是缓慢的,而且大都是光照,风等等的影响,通过对背景建模,对一幅给定图像分离前景和背景,一般来说,前景就是运动物体,从而达到运动物体检测的目的。
单分布高斯背景模型
单分布高斯背景模型认为,对一个背景图像,特定像素亮度的分布满足高斯分布,即对背景图像B,(x,y)点的亮度满足: IB(x,y) ~ N(u,d) 这样我们的背景模型的每个象素属性包括两个参数:平均值u 和 方差d。
对于一幅给定的图像G,如果 Exp(-(IG(x,y)-u(x,y))^2/(2*d^2)) > T,认为(x,y)是背景点,反之是前景点。
同时,随着时间的变化,背景图像也会发生缓慢的变化,这时我们要不断更新每个象素点的参数 u(t+1,x,y) = a*u(t,x,y) + (1-a)*I(x,y) 这里,a称为更新参数,表示背景变化的速度,一般情况下,我们不更新d(实验中发现更不更新d,效果变化不大)。
高斯混合模型是用于背景提取的方法,OpenCV的cvaux中cvbgfg_gaussmix.cpp文件根据文献An improved adaptive background mixture model for real-time tracking with shadow中提供的方法编写了高斯混合模型函数。
其中定义了CvGaussBGModel类用于存放高斯混合模型的各个参数。
我用OpenCV使用高斯混合模型函数分以下几步: 1。
需要用到icvUpdateGaussianBGModel,icvReleaseGaussianBGModel两个函数,但是源程序中将这两个函数定义为内部函数,需要做一些修改,首先将cvbgfg_gaussmix.cpp中前面两个函数的声明static void CV_CDECL icvReleaseGaussianBGModel( CvGaussBGModel** bg_model ); static int CV_CDECL icvUpdateGaussianBGModel( IplImage* curr_frame, CvGaussBGModel* bg_model );两行代码注释掉。
然后在cvbgfg_gaussmix.cpp中间部分两个函数的定义部分,函数头static int和static void改成CV_IMPL int 和CV_IMPL void。
最后在cvaux.h文件中CVAPI(CvBGStatModel*) cvCreateGaussianBGModel( IplImage* first_frame, CvGaussBGStatModelParams* parameters CV_DEFAULT(NULL));这句后面加上以下两句CVAPI(void) icvReleaseGaussianBGModel( CvGaussBGModel** bg_model ); CVAPI(int) icvUpdateGaussianBGModel( IplImage* curr_frame, CvGaussBGModel* bg_model ); 程序修改完毕,点rebuild all,全部重新编译。
2。
在程序初始化部分定义高斯混合模型参数CvGaussBGModel* bg_model=NULL;在读取第一帧图像(背景图像)时,进行高斯背景建模bg_model = (CvGaussBGModel*)cvCreateGaussianBGModel(image, 0);image可以是灰度图象也可以是彩色图像。
接下来再读取当前帧时,更新高斯模型 regioncount=icvUpdateGaussianBGModel(currframe, bg_model );regioncount的含义我不确定,我理解是代表背景中不同颜色区域的个数,这个参数我没有用到,它只是icvUpdateGaussianBGModel函数的返回值。
3。
现在bg_model已经保存了经过高斯混合模型分类后的结果,bg_model->background保存了背景图像,bg_model->foreground保存了前景图像。
include #include #include #include #include //必须引此头文件 int main( int argc, char** argv ) { IplImage* pFrame = NULL; IplImage* pFrImg = NULL; IplImage* pBkImg = 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( argc > 2 ) { fprintf(stderr, "Usage: bkgrd [video_file_name]
"); return -1; } //打开视频文件 if(argc == 2) if( !(pCapture = cvCaptureFromFile(argv[1]))) { fprintf(stderr, "Can not open video file %s
", argv[1]); return -2; } //打开摄像头 if (argc == 1) if( !(pCapture = cvCaptureFromCAM(-1))) { fprintf(stderr, "Can not open camera.
"); return -2; } //初始化高斯混合模型参数 CvGaussBGModel* bg_model=NULL; while(pFrame = cvQueryFrame( pCapture )) { nFrmNum++; if(nFrmNum == 1) { pBkImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,3); pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1); //高斯背景建模,pFrame可以是多通道图像也可以是单通道图像 //cvCreateGaussianBGModel函数返回值为CvBGStatModel*, //需要强制转换成CvGaussBGModel* bg_model = (CvGaussBGModel*)cvCreateGaussianBGModel(pFrame, 0); } else { //更新高斯模型 cvUpdateBGStatModel(pFrame, (CvBGStatModel *)bg_model ); //pFrImg为前景图像,只能为单通道 //pBkImg为背景图像,可以为单通道或与pFrame通道数相同 cvCopy(bg_model->foreground,pFrImg,0); cvCopy(bg_model->background,pBkImg,0); //把图像正过来 pBkImg->origin=1; pFrImg->origin=1; cvShowImage("video", pFrame); cvShowImage("background", pBkImg); cvShowImage("foreground", pFrImg); if( cvWaitKey(2) >= 0 ) break; } } //释放高斯模型参数占用内存 cvReleaseBGStatModel((CvBGStatModel**)&bg_model); cvDestroyWindow("video"); cvDestroyWindow("background"); cvDestroyWindow("foreground"); cvReleaseImage(&pFrImg); cvReleaseImage(&pBkImg); cvReleaseCapture(&pCapture); return 0; }
以前我们在参与到云服务商促销活动的时候周期基本是一周时间,而如今我们会看到无论是云服务商还是电商活动基本上周期都要有超过一个月,所以我们有一些网友习惯在活动结束之前看看商家是不是有最后的促销活动吸引力的,比如有看到阿里云年中活动最后一周,如果我们有需要云服务器的可以看看。在前面的文章中(阿里云新人福利选择共享性N4云服务器年79.86元且送2月数据库),(LAOZUO.ORG)有提到阿里云今年的云...
快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...
华纳云双11钜惠出海:CN2海外物理服务器终身价688元/月,香港/美国机房,免费送20G DDos防御,50M CN2或100M国际带宽可选,(文内附带测评)华纳云作为一家专业的全球数据中心基础服务提供商,总部在香港,拥有香港政府颁发的商业登记证明,APNIC 和 ARIN 会员单位。主营香港服务器、美国服务器、香港/美国OpenStack云服务器、香港高防物理服务器、美国高防服务器、香港高防I...
光流法为你推荐
文件下载如何从电脑里将文件下载到u盘里小项目如何搞小工程0x800ccc0f您的服务器意外终止了连接。其可能原因包括服务器出错、网络出错或长时间处于非活动状态。 0x800CCC0F快照优化如何优化百度快照安全工程师待遇注册安全工程师现在一般工资是多少?未来前景如何无线互联网笔记本电脑之间可不可以实现无线互联?如果能,该怎么联接?fshow为什么日文里面还有很多中文?宴请网怎样拉别人进我的短号集群网?我只是在那个网里面 可以邀请别人进来这个网吗?2000万开房信息宾馆开房一般在公安局保存多久手机话费余额查询输入手机号码可以查询话费余额吗
虚拟主机租用 国内vps linuxvps 域名主机基地 GGC hostgator hawkhost 腾讯云数据库 godaddy域名转出 密码泄露 搜狗12306抢票助手 100m免费空间 炎黄盛世 hostker hktv 吉林铁通 免费mysql数据库 外贸空间 linode支付宝 smtp服务器地址 更多