您的位置:首页 > 运维架构

opencv图像边缘检测使用,先做平滑处理在进行边缘检测

2013-06-25 11:25 931 查看
#include<cv.h>

#include<highgui.h>

CvCapture* capture;

IplImage* doCanny(IplImage *in,double lowThresh,double highThresh,double aperture)

{



/*if(in->nChannels!=1)

return 0;*/

IplImage* out=cvCreateImage(cvSize(in->width,in->height),IPL_DEPTH_8U,1);

cvCanny(in,out,lowThresh,highThresh,aperture);

return out;

}

int main()

{

capture=cvCreateCameraCapture(-1);

IplImage* frame;

IplImage* out;

while(1)

{





/*cvQueryFrame用来将下一帧视频文件载入内存,返回一个对应当前帧的指针,

此内存是cvCapture已经加载好的内存,所以最后不用再写释放帧的语句,释放capture就包含了释放cvFrame。*/



frame=cvQueryFrame(capture);

if(!frame)

break;

cvSmooth(frame,frame,CV_GAUSSIAN,3,3,0,0);

//out=doCanny(frame,30,100,3);

cvShowImage("show",frame);

//cvShowImage("show",out);

char c=cvWaitKey(33);

if(c==27)

{

cvReleaseCapture(&capture);

//cvDestroyWindow("video");

break;

}

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐