【OpenCV学习】Laplace变换(视频边界检测)

#include "cv.h"
#include "highgui.h"
#include 
#include 
int main(int argc , char **argv)
{IplImage *laplace = 0;IplImage *coloelaplace = 0;IplImage *planes[3]={0,0,0};//多个图像面CvCapture *capture = 0;if (argc==1|| (argc==2 && strlen(argv[1])==1 && isdigit(argv[1][0]))){capture = cvCaptureFromCAM(-1);}else if(argc==2){capture = cvCaptureFromAVI(argv[1]);}if (!capture){fprintf(stderr,"Could not initialize capturing.../n");return -1;}cvNamedWindow("main",0);for (;;){IplImage *frame=0;int i;frame = cvQueryFrame(capture);//从摄像头或者文件中抓取并返回一帧if (!frame){break;}if (!laplace){for (i=0;i<3;i++){planes[i]=cvCreateImage(cvSize(frame->width,frame->height),8,1);}laplace=cvCreateImage(cvSize(frame->width,frame->height),IPL_DEPTH_16S,1);coloelaplace=cvCreateImage(cvSize(frame->width,frame->height),8,3);}cvCvtPixToPlane(frame,planes[0],planes[1],planes[2],0);//#define cvCvtPixToPlane cvSplitfor (i=0;i<3;i++){cvLaplace(planes[i],laplace,3);//计算图像planes[i]的 Laplacian 变换cvConvertScaleAbs(laplace,planes[i],1,0);//planes[]=ABS(laplace)}cvCvtPlaneToPix(planes[0],planes[1],planes[2],0,coloelaplace);//#define cvCvtPlaneToPix cvMergecoloelaplace->origin=frame->origin;cvShowImage("main",coloelaplace);if (cvWaitKey(10)>=0){break;}}cvReleaseCapture(&capture);cvDestroyWindow("main");return 0;
}本文转自gnuhpc博客园博客,原文链接http://www.cnblogs.com/gnuhpc/archive/2012/10/08/2715884.html,如需转载请自行联系原作者


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部