#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main()
{
IplImage *laplace=0;
IplImage *colorlaplace=0;
IplImage *planes[3]={0,0,0};
CvCapture *capture=cvCaptureFromAVI("/home/eve/Download/ExampleAVI/2.avi");
//cvNamedWindow("laplacian",0);
for(;;)
{
IplImage *frame=cvQueryFrame(capture);
int i;
if(!frame) break;
if(!laplace)
{
for(i=0;i<3;i++)
{
planes[i]=cvCreateImage(cvGetSize(frame),8,1);
}
laplace=cvCreateImage(cvGetSize(frame),IPL_DEPTH_16S,1);
colorlaplace=cvCreateImage(cvGetSize(frame),8,3);
}
cvCvtPixToPlane(frame,planes[0],planes[1],planes[2],0);
for(i=0;i<3;i++)
{
cvLaplace(planes[i],laplace,3);
cvConvertScaleAbs(laplace,planes[i],1,0);//使用线性变换转换输入数组元素成8位无符号整型 dst(I)=abs(src(I)*scale + (shift,shift,...))
}
cvCvtPlaneToPix(planes[0],planes[1],planes[2],0,colorlaplace);
colorlaplace->origin=frame->origin;
cvShowImage("laplacian",colorlaplace);
if( cvWaitKey(10) >= 0 )
break;
}
cvReleaseCapture(&capture);
// cvDestroyWindow("laplacian");
return 0;
}