首页 > 编程知识 正文

java图片,javacv与opencv区别

时间:2023-05-05 09:32:39 阅读:105946 作者:4157

#包含

#包含

#包含

#包含

#include //必须引用此头文件

intmain(intargc,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 );

//打开视频文件

p capture=cvcapturefromfile (bike.avi );

//p capture=cvcapturefromfile (2012 07 26.avi );

if (! pCapture )

{

frintf(stderr,' Can not open video file %sn ',argv[1] );

返回- 2;

}

初始化kkdjr混合模型参数

CvGaussBGModel* bg_model=NULL;

while (p frame=cvqueryframe (p capture ) )

{

nFrmNum;

if(NFRmnum==1) ) ) )。

{

pbk img=cvcreateimage (cv size (p frame-width,pFrame-depth ),p frame-nchannels/* IPL _ depth _ height ),p frame,p

PFR img=cvcreateimage (cv size (p frame-width,pFrame-height ),IPL_DEPTH_8U,1 );

//kkdjr背景建模,pFrame可以是多通道图像也可以是单通道图像

//cvCreateGaussianBGModel函数的返回值为CvBGStatModel*,

必须强制转换为//cvgaussbgmodel

BG_model=(cvgaussbgmodel* ) cvcreategaussianbgmodel(pframe,0 );

}

else

{

更新kkdjr型号

cvupdatebgstatmodel(pframe,) CvBGStatModel * ) bg_model );

//pFrImg是前景图像,仅是单通道

//pBkImg是背景图像,可以是单通道,也可以是与pFrame通道相同数量

cvcopy(BG_model-foreground,pFrImg,0 );

cvcopy(BG_model-background,pBkImg,0 );

cvthreshold(pFrImg,PFRimg,128,255,CV_THRESH_BINARY_INV );

//图像正确

//pBkImg-origin=1;

//pFrImg-origin=1;

CVShowimage(video )、pFrame );

CVShowimage('background ',pBkImg );

CVShowimage('foreground ',pFrImg );

if(cvwaitkey(100 )=0) ) )。

布雷克;

}

}

释放kkdjr模型的参数占用内存

cvreleasebgstatmodel ((cvbgstatmodel * * ) bg_model );

cvdestroywindow(video );

cvdestroywindow(background );

cvdestroywindow(foreground );

cvreleaseimage(PFRimg;

cvreleaseimage(PBKimg;

cvreleasecapture(pcapture;

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。