首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

vc2003与vc6.0差异

2013-03-13 
vc2003与vc6.0区别?代码如下:int _tmain(int argc, _TCHAR* argv[]){//声明IplImage指针IplImage* pFrame

vc2003与vc6.0区别?

代码如下:

int _tmain(int argc, _TCHAR* argv[])
{//声明IplImage指针
IplImage* pFrame = NULL; 
//三帧图像
IplImage* pFrame1 = NULL;
    IplImage* pFrame2 = NULL;
    IplImage* pFrame3 = NULL;
     //三帧图像相减图像
    IplImage* pFrImg1 = NULL;
    IplImage* pFrImg2 = NULL;
     //最终图像
    IplImage* pFrImg = 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( !(pCapture = cvCreateFileCapture("d:\\1.avi")))
{
fprintf(stderr, "Can not open video file %s\n", argv[1]);
return -2;
}

//逐帧读取视频
while(pFrame = cvQueryFrame( pCapture ))
{
nFrmNum++;

//如果是第一帧,需要申请内存,并初始化
if(nFrmNum == 1)
{   pFrame1= cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);
pFrame2= cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);
pFrame3 = cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);

pFrImg1= cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);
            pFrImg2= cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);

            pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height),IPL_DEPTH_8U,1);
//转化成单通道图像再处理
cvCvtColor(pFrame, pFrame1, CV_BGR2GRAY);//第一帧放在背景前经图像
cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);//用作显示
            cvShowImage("video", pFrame);

}
  if (nFrmNum==2)
{  
          cvCvtColor(pFrame, pFrame2, CV_BGR2GRAY);  //第二针
  
}

if (nFrmNum>=3)
{
cvCvtColor(pFrame, pFrame3, CV_BGR2GRAY);
            cvAbsDiff(pFrame1,pFrame2,pFrImg1);
cvAbsDiff(pFrame2,pFrame3,pFrImg2);
            cvAnd(pFrImg1,pFrImg2,pFrImg);
/*pBkImg->origin=1;
pFrImg->origin=1;*/

cvFlip(pFrImg,pFrImg,0);
//二值化前景图
cvThreshold(pFrImg, pFrImg, 40, 255.0, CV_THRESH_BINARY);

//进行形态学滤波,去掉噪音  

/*cvDilate(pFrImg, pFrImg, 0, 1);
            cvErode(pFrImg, pFrImg, 0, 1);*/
cvShowImage("video", pFrame);
            
/*cvShowImage("background", pBkImg);*/


cvShowImage("foreground", pFrImg);
//等待时间可以根据CPU速度调整
            cvCopy(pFrame2,pFrame1);
cvCopy(pFrame3,pFrame2);
/*cvCvtColor(pFrame, pFrameImg2, CV_BGR2GRAY);
cvCvtColor(pFrameImg2,pFrameImg, CV_BGR2GRAY);*/
if( cvWaitKey(30) >= 0 )
break;
}  


cvDestroyWindow("video");
/*cvDestroyWindow("background");*/
cvDestroyWindow("foreground");



//释放图像和矩阵
cvReleaseImage(&pFrImg);
/*cvReleaseImage(&pBkImg);*/
cvReleaseImage(&pFrame1);
    cvReleaseImage(&pFrame2);
    cvReleaseImage(&pFrame3);
    cvReleaseImage(&pFrImg1);
    cvReleaseImage(&pFrImg2);
return 0;
}

三帧差 vc6.0 vc2003
[解决办法]
直接复制进去,看看哪有问题,解决哪....
[解决办法]
引用:
引用:直接复制进去,看看哪有问题,解决哪....
改了一些地方之后,编译都没有问题,可是执行之后 没有结果

单步调试一下,看看那些地方和自己预期的不同。
[解决办法]
你安装相应版本的opencv,加载相应的库就行了,代码部分不需要修改,_tmain改成main函数入口就可以了
[解决办法]
你直接先将code copy过去,看看编译能过不?

热点排行