请求帮助 实现 背景差减法 、帧间差分法、光流法 的算法,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; }
阿里云(aliyun)在这个月又推出了一个金秋上云季活动,到9月30日前,每天两场秒杀活动,包括轻量应用服务器、云服务器、云数据库、短信包、存储包、CDN流量包等等产品,其中Aliyun轻量云服务器最低60元/年起,还可以99元续费3次!活动针对新用户和没有购买过他们的产品的老用户均可参与,每人限购1件。关于阿里云不用多说了,国内首屈一指的云服务器商家,无论建站还是学习都是相当靠谱的。活动地址:h...
tmhhost怎么样?tmhhost正在搞暑假大促销活动,全部是高端线路VPS,现在直接季付8折优惠,活动截止时间是8月31日。可选机房及线路有美国洛杉矶cn2 gia+200G高防、洛杉矶三网CN2 GIA、洛杉矶CERA机房CN2 GIA,日本软银(100M带宽)、香港BGP直连200M带宽、香港三网CN2 GIA、韩国双向CN2。点击进入:tmhhost官方网站地址tmhhost优惠码:Tm...
racknerd怎么样?racknerd最近发布了一些便宜美国服务器促销,包括大硬盘服务器,提供120G SSD+192TB HDD,有AMD和Intel两个选择,默认32G内存,1Gbps带宽,每个月100TB流量,5个IP地址,月付$599。价格非常便宜,需要存储服务器的朋友可以关注一下。RackNerd主要经营美国圣何塞、洛杉矶、达拉斯、芝加哥、亚特兰大、新泽西机房基于KVM虚拟化的VPS、...
光流法为你推荐
文件下载如何从电脑里将文件下载到u盘里连接池什么是数据库连接池?谢谢了win10发布windows 10什么时候发布文件损坏安装软件显示文件已损坏怎么回事jsp源码在网上下的jsp源码怎么运行?有数据库的什么是光纤什么是光纤网络硬盘分区格式化新硬盘分区格式化有哪些方法?sd卡座SD卡座 FPC座子请问这些产品哪家厂家的货比较好啊?黑屏操作电脑一操作就黑屏 不操作就没有事。该怎么恢复主板说明书主板各个接口,插口的详细说明
512av 777te 789电视网 lol台服官网 卡巴斯基试用版 福建铁通 如何用qq邮箱发邮件 电信虚拟主机 免费网页申请 上海联通宽带测速 上海电信测速网站 架设邮件服务器 贵阳电信测速 阿里云手机官网 服务器防御 发证机构 cpu使用率过高怎么办 linux服务器系统 一句话木马 iptables 更多