问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我想在vs2010中用opencv实现一个视频中的各帧图像之间的对比,谁能提供可参考的代码?

发布网友 发布时间:2022-04-29 19:07

我来回答

1个回答

热心网友 时间:2023-10-05 11:14

我写过类似的,截取一部分你看看

这个是读取视频获得每帧图像的代码并保存
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
//#pragma comment(lib, "ml.lib")
//#pragma comment(lib, "cv.lib")
//#pragma comment(lib, "cvaux.lib")
//#pragma comment(lib, "cvcam.lib")
//#pragma comment(lib, "cxcore.lib")
//#pragma comment(lib, "cxts.lib")
//#pragma comment(lib, "highgui.lib")
//#pragma comment(lib, "cvhaartraining.lib")
int main()
{
CvCapture *capture = NULL;
IplImage *frame = NULL;
char *AviFileName = "e:\\Wildlife.wmv";//视频的目录
char *AviSavePath = "e:\\截图\\";//图片保存的位置
const int jiange = 4;//间隔两帧保存一次图片
capture = cvCaptureFromAVI(AviFileName);
cvNamedWindow("AVI player",1);
int count_tmp = 0;//计数总帧数
char tmpfile[100]={'\0'};
while(true)
{
if(cvGrabFrame(capture))
{
if (count_tmp % jiange == 0)
{
frame=cvRetrieveFrame(capture);
cvShowImage("AVI player",frame);//显示当前帧
sprintf(tmpfile,"%s//%d.jpg",AviSavePath,count_tmp);//使用帧号作为图片名
cvSaveImage(tmpfile,frame);
}
if(cvWaitKey(10)>=0) //延时
break;
++count_tmp;
}
else
{
break;
}
}
cvReleaseCapture(&capture);
cvDestroyWindow("AVI player");
std::cout<<"总帧数" << count_tmp << std::endl;
return 0;
}
获取轮廓代码
m_p_iplContourImg = cvCreateImage(cvGetSize(p_iplSrcImg),IPL_DEPTH_8U,3);
cvZero(m_p_iplContourImg);
CvMemStorage *storage = cvCreateMemStorage(0);
CvSeq * contour = 0;
CvSeq * LocaContour = 0;
double maxaera = 3000, minaera = 800, Maxaera = 0, LocaAera = 0;

IplImage *p_iplDestImgClone = cvCreateImage(cvGetSize(p_iplDestImg),8,1);
p_iplDestImgClone = cvCloneImage(p_iplDestImg) ;
//只找外部轮廓 CV_RETR_EXTERNAL
cvFindContours( p_iplDestImgClone, storage, &contour, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));

获取轮廓面积
double area = fabs(cvContourArea( contour, CV_WHOLE_SEQ )); //获取当前轮廓面积

希望对你有用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
你好。本人最近想入手个 本本 知道你是高手望给点高见 3K以内。 惠普(hp)hp431(qg643pa) 与联想(lenovo)g460al-ith(h)该买哪一... 惠普4核1G独立显卡2G-4G内存的笔记本电脑有哪些型号的比较好?价位是多... hp 431-qg597怎么样?惠普质量真很差吗?它的商务本怎么样 hp431 qg597无线上网卡插在那里? 惠普HP431(QG643PA)笔记本经常死机自动重启 陆金所 德众金融理财可靠吗? 平安为什么建陆金所 陆金所有什么风险吗 100分问题:请问汕头市区哪里有卖“节节风”的中草要。 如何教育6-7周岁的儿童 图集:黎姿vs袁洁莹对比图谁是真正女神 6-8岁孩子该怎么教育啊???困惑 和平精英吃鸡什么样算开挂呢? ps怎样做淘宝详情页的宝贝vs好坏对比图 七岁的儿子教育方法 现代社会:七岁的孩子都需要会什么?非常任性要怎样教育?? 面对叛逆性较强的孩子(7岁)该如何教育? 新换的华为手机电池充满后能续航几小时 7、8岁的孩子如何教育? 7岁孩子叛逆怎么教育 阳间怎样寄物品去阴间某一个人? 阴间的鬼能看见阳间的人和阳间的人做的事吗? 该如何教育七岁的儿童 怎么才可以过阴?可以顺利去阴间阳间的 在阴间鬼看不到人,在阳间人看不到鬼,真的是这样吗 在阴间鬼看不到人,在阳间人看不到鬼,真的是这样吗? 人死后真的有灵魂去阴间吗?如果是真的,怎样才能见到死去人的灵魂? 小米3怎么设置来电闪光灯闪烁 人死后在阴间可以看到阳间的亲人吗 和平精英这种情况是不是开挂了? 买家秀和卖家秀对比区别是什么? 和平精英经典模式每一把都吃鸡,这算不算是开挂了? 华为手机的电池能坚持多久 我想请问一下到底这男的跟哪个女人才是一对儿?图三是三个女的的外貌对比图(1vs2) 如何看待那些玩和平精英开挂的人? 朗逸VS嘉际,两大阵营,谁才是家用车主流 和平精英:你有过被质疑开挂过吗? 佳能和尼康哪款的单反性价比高?推荐个机型,价钱不要太贵 选集成灶还是传统烟灶套装?看这一篇就够了 两颗钻石选哪个 我手机刺激战场开过挂 但是后来没有开挂啦为什么还要被强制下线观察7天换号还是一样的 DX9与DX10 图一和图二是什么关系 初中女生网名,五个字以上的 初中女生网名,流疏_简影,逸雨涵梦,琉璃_幻景,这三个哪个好?简单理由,顺便推荐几个,风格类似于此, 恒芝开水器EL故障码怎么维修? 男人被删后的心理 男生被女生删了微信是什么感受 男人被删除微信后,他会怎么想