#include"cv.h"
#include"highgui.h"
#include"math.h"
#include"cxcore.h"
#include"iostream.h"
int char2int(char x);
int main()
{ int i,j;
IplImage *image1=0,*image2=0,*image3=0;
IplImage *image11=0,*image22=0,*image33=0;
IplImage *gg=0, *gg2=0, *gg3=0;
IplImage* tempImg1=0;
CvSize size;
image1=cvLoadImage("猪2.jpg", 0);
image2=cvLoadImage("猪3.jpg", 0);
image3=cvLoadImage("猪4.jpg",0);
int n=image1->nChannels;
int m=image1->depth;
image11=cvCreateImage( cvSize(image1->width,image1->height), 8, 1 );
image22=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
image33=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
// cvCvtColor(image1, image11,CV_BGR2GRAY);
// cvCvtColor(image2, image22,CV_BGR2GRAY);
// cvCvtColor(image3, image33,CV_BGR2GRAY);
gg=cvCreateImage( cvSize(image1->width,image1->height), 8, 1 );
gg2=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
gg3=cvCreateImage(cvSize(image1->width,image1->height), 8, 1);
size = cvSize(image1->width, image1->height);
//tempImg1 = cvCreateImage( cvSize((size.width & -2)/2, (size.height & -2)/2), 8, 1 );
tempImg1 = cvCreateImage( cvSize( image1 -> width/2, image1 -> height/2 ), image1 -> depth, image1 -> nChannels );
for(i=0;i<image1->width;i++)
{
for(j=0;j<image1->height;j++)
{
CvPoint pt = {i,j};
((uchar*)(gg->imageData + gg->widthStep*pt.y))[pt.x]=abs(
((uchar*)(image1->imageData + image1->widthStep*pt.y))[pt.x]-
((uchar*)(image2->imageData + image2->widthStep*pt.y))[pt.x]);
((uchar*)(gg2->imageData + gg2->widthStep*pt.y))[pt.x]=abs(
((uchar*)(image1->imageData + image1->widthStep*pt.y))[pt.x]-
((uchar*)(image3->imageData + image3->widthStep*pt.y))[pt.x]);
((uchar*)(gg3->imageData + gg3->widthStep*pt.y))[pt.x]=abs(
((uchar*)(gg->imageData + gg->widthStep*pt.y))[pt.x]-
((uchar*)(gg2->imageData + gg2->widthStep*pt.y))[pt.x]);
}
}
cvNamedWindow( "原图像", 0);
cvNamedWindow( "运动图像1", 0);
cvNamedWindow( "运动图像2", 0);
cvNamedWindow( "帧间差分图像1", 0);
cvNamedWindow( "帧间差分图像2", 0);
cvNamedWindow( "帧间差分图像3", 0);
cvShowImage("原图像",image1);
cvShowImage("运动图像1",image2);
cvShowImage("运动图像2",image3);
cvShowImage("帧间差分图像1",gg);
cvShowImage("帧间差分图像2",gg2);
cvShowImage("帧间差分图像3",gg3);
cvWaitKey(0);//等待按键
//释放图像
cvReleaseImage(&image1);
cvReleaseImage(&image2);
cvReleaseImage(&image3);
cvReleaseImage(&gg);
cvReleaseImage(&gg2);
// cvReleaseImage(&gg4);
//销毁窗口
cvDestroyWindow("原图像");
cvDestroyWindow("运动图像1");
cvDestroyWindow("运动图像2");
cvDestroyWindow("帧间差分图像1");
cvDestroyWindow("帧间差分图像2");
cvDestroyWindow("帧间差分图像3");
return(0);
}
- 1
- 2
前往页