- 2022-08-13 发布 |
- 37.5 KB |
- 4页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
计算机摄影学大作业
计算机摄影大作业1.大作业实现的主要功能是用OPENCV将一张照片变成灰色(也就是黑白),还有把边缘检测出来,分别用三张照片显示原图,黑白图和边缘图。2.代码如下:#include"cv.h"#include"cxcore.h"#include"highgui.h"intmain(intargc,char**argv){//声明IplImage指针IplImage*gray=NULL;IplImage*canny=NULL;IplImage*color=NULL;char*filename;filename="深沉沉的陈晨升.jpg";gray=cvLoadImage(filename);color=cvLoadImage(filename);//载入图像,强制转化为Grayif((gray=cvLoadImage(filename,0))!=0){canny=cvCreateImage(cvGetSize(color),IPL_DEPTH_8U,1);//canny边缘检测cvCanny(color,canny,50,150,3);cvNamedWindow("gray",1);cvNamedWindow("canny",1);cvNamedWindow("color",1);//显示图像cvShowImage("gray",gray);cvShowImage("color",color);cvShowImage("canny",canny);cvWaitKey(0);//等待按键//销毁窗口cvDestroyWindow("gray");cvDestroyWindow("color");cvDestroyWindow("canny");//释放图像cvReleaseImage(&gray);cvReleaseImage(&color);cvReleaseImage(&canny);return0;}return-1;\n}实现的结果:原图:黑白图:Canny(边缘检测图):\n1.代码分析:IplImage*gray=NULL;IplImage*canny=NULL;IplImage*color=NULL;char*filename;filename="深沉沉的陈晨升.jpg";定义三种图片,载入原图。cvLoadImage(filename,0);强制转化读取图像为灰度图canny=cvCreateImage(cvGetSize(color),IPL_DEPTH_8U,1);cvCanny(color,canny,50,150,3);边缘检测cvNamedWindow("gray",1);cvNamedWindow("canny",1);cvNamedWindow("color",1);命名三个显示图片的窗口。cvShowImage("gray",gray);cvShowImage("color",color);cvShowImage("canny",canny);在三个窗口分别显示三张图片。cvWaitKey(0);等待按键运行成功后,按下任意按钮,即可执行下面的程序。cvDestroyWindow("gray");cvDestroyWindow("color");cvDestroyWindow("canny");关闭窗口\ncvReleaseImage(&gray);cvReleaseImage(&color);cvReleaseImage(&canny);释放图片1.遇到的困难和错误:首先是OPENCV的配置,虽然网上有一模一样的教程,但是还是要配置两三次才能成功。其次:完全没头绪OPENCV的代码的编写,只能在网上找资料,最后实现的功能也不是很复杂。2.心得体会:虽然没有很深入的掌握到OPENCV的运用。或者说还是不能靠自己打出一串完整的代码,不过能学到点图像处理还是可以的。技多不压身。查看更多