您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字图像处理-实验报告
DONGFANGCOLLEGE,FUJIANAGRICULTUREANDFORESTRYUNIVERSITY实验报告课程名称:数字图像处理系别:计算机系年级:13专业:计算机科学与技术班级:1班学号:1250303003姓名:李展辉成绩:任课教师:林高飞2016年6月25日目录实验一熟OpenCV环境和基本操作...........................................................................2实验二点处理...................................................................................................................5实验三图像分割...............................................................................................................9实验四频域变换.............................................................................................................13实验五数学形态学.........................................................................................................18附录一实验报告格式.....................................................................................................211实验一熟悉OpenCV环境和基本操作一、实验目的熟悉OpenCV运行环境和了解图像的基本操作。二、实验内容1.OpenCV的安装参见OpenCVChina网站:利用OpenCV读入一个图像文件,并将其显示到屏幕上#includestdafx.h#includecv.h#includehighgui.hintmain(intargc,char**argv){IplImage*pImg;//声明IplImage指针//载入图像(文件在C盘根目录下)if((pImg=cvLoadImage(c://lena.jpg,1))!=0){cvNamedWindow(Image,1);cvShowImage(Image,pImg);cvWaitKey(0);//等待按键cvDestroyWindow(Image);cvReleaseImage(&pImg);return0;//创建窗口//显示图像//销毁窗口//释放图像,注意pImg前面一定要加&}return-1;}3.图像创建、保存和复制举例#includestdafx.h#includecv.h#includehighgui.hintmain(intargc,char**argv){IplImage*pImg;//声明IplImage指针//载入图像,强制转化为Gray2If((pImg=cvLoadImage(c:\\lena.jpg,0))!=0){IplImage*pImg2=cvCreateImage(cvGetSize(pImg),pImg-depth,pImg-nChannels);cvCopy(pImg,pImg2,NULL);cvSaveImage(example.jpg,pImg2);//把图像写入文件cvNamedWindow(Image,1);cvShowImage(Image,pImg);cvWaitKey(0);//创建窗口//显示图像//等待按键//销毁窗口//释放图像//释放图像cvDestroyWindow(Image);cvReleaseImage(&pImg);cvReleaseImage(&pImg2);return0;}return-1;}4.一个简单的图像处理例子,求图像的边界。#includestdafx.h#includecv.h#includecxcore.h#includehighgui.hintmain(intargc,char**argv){//声明IplImage指针IplImage*pImg=NULL;IplImage*pCannyImg=NULL;//载入图像,强制转化为Grayif((pImg=cvLoadImage(c:\\lena.jpg,0))!=0){//为canny边缘图像申请空间pCannyImg=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,1);//canny边缘检测cvCanny(pImg,pCannyImg,50,150,3);//创建窗口cvNamedWindow(src,1);cvNamedWindow(canny,1);3//显示图像cvShowImage(src,pImg);cvShowImage(canny,pCannyImg);cvWaitKey(0);//等待按键//销毁窗口cvDestroyWindow(src);cvDestroyWindow(canny);//释放图像cvReleaseImage(&pImg);cvReleaseImage(&pCannyImg);return0;}return-1;}三、思考题:1.试举几个图像处理应用的例子,并查阅它们的解决方法。2.OpenCV有几个类,每个类的主要特点是什么。3.试查阅OpenCV库函数,利用Sobel算子求图像边界.4.利用OpenCV产生一个图像,尺寸为200*240,三通道,其中某一块为红色,其它皆为黑色,示例图如下。图1示例图4实验二点处理一、实验目的掌握灰度直方图分析图像的灰度分布。掌握常用的点处理方法和原理,调解灰度变换参数二、实验内容1.直方图均衡化#includestdafx.h#includecv.h#includecxcore.h#includehighgui.hintmain(intargc,char**argv){inti;IplImage*pImageChannel[4]={0,0,0,0};IplImage*pSrcImage;//指针数组pSrcImage=cvLoadImage(SV101901_Gray.jpg,1);//装入一幅彩色或灰度图像IplImage*pImage=cvCreateImage(cvGetSize(pSrcImage),pSrcImage-depth,pSrcImage-nChannels);if(pSrcImage){for(i=0;ipSrcImage-nChannels;i++){pImageChannel[i]=cvCreateImage(cvGetSize(pSrcImage),pSrcImage-depth,1);}//通道分离cvSplit(pSrcImage,pImageChannel[0],pImageChannel[1],pImageChannel[2],pImageChannel[3]);for(i=0;ipImage-nChannels;i++){cvEqualizeHist(pImageChannel[i],pImageChannel[i]);//直方图均衡化}cvMerge(pImageChannel[0],pImageChannel[1],pImageChannel[2],pImageChannel[3],pImage);cvNamedWindow(Image,1);//通道组合5cvShowImage(Image,pImage);cvWaitKey(0);for(i=0;ipSrcImage-nChannels;i++){if(pImageChannel[i]){cvReleaseImage(&pImageChannel[i]);pImageChannel[i]=0;}}cvReleaseImage(&pImage);pImage=0;}return0;}2.图像平滑#includestdafx.h#includecv.h#includecxcore.h#includehighgui.hintmain(intargc,char**argv){//声明IplImage指针IplImage*pImg=NULL;IplImage*pSmoothImg=NULL;//载入图像,强制转化为Grayif((pImg=cvLoadImage(c:\\lena.jpg,0))!=0){//为平滑图像申请空间pSmoothImg=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,1);//平滑检测cvSmooth(pImg,pSmoothImg,CV_BLUR,7,7);//创建窗口cvNamedWindow(src,1);cvNamedWindow(canny,1);//显示图像cvShowImage(src,pImg);cvShowImage(canny,pSmoothImg);6cvWaitKey(0);//等待按键//销毁窗口cvDestroyWindow(src);cvDestroyWindow(canny);//释放图像cvReleaseImage(&pImg);cvReleaseImage(&pSmoothImg);return0;}return-1;}3.图像锐化#includestdafx.h#includecv.h#includecxcore.h#includehighgui.hintmain(intargc,char**argv){//声明IplImage指针IplImage*pImg=NULL;IplImage*pSobelImg=NULL;//载入图像,强制转化为Grayif((pImg=cvLoadImage(c:\\lena.jpg,0))!=0){//为锐化图像申请空间pSobelImg=cvCreateImage(cvGetSize(pImg),IPL_DEPTH_8U,1);//sobel图像锐化cvSobel(pImg,pSobelImg,0,1,3);//创建窗口cvNamedWindow(src,1);cvNamedWindow(canny,1);//显示图像cvShowImage(src,pImg);cvShowImage(canny,pSobelImg);cvWaitKey(0);//等待按键//销毁窗口cvDestroyWindow(src);cvDestroyWindow(canny);7//释放图像cvReleaseImage(&pImg);cvReleaseImage(&pSobelImg);return0;}return-1;}3.思考题1.改变cvSmooth函数的平滑类型和模板尺寸,分析得到的结果并思考原因。2.改变Sobel函数的参数,分析如何得到一幅图像垂直和水平方向的边界。3.对一幅含有椒盐噪声的图像,基于3×3模板,分别采用邻域平滑法和中值滤波法去噪,并对结果进行简单分析。注:椒盐噪声图片可在作业管理系统中下载。8实验三图像分割一、实验目的掌握图像分割的基本思想掌握图像分割的主要算法了解轮廓跟踪的基本概念二、实验内容1、阈值分割法#includestdafx.h#includecv.h#includecxcore.h#includehighgui.hintmain(in
本文标题:数字图像处理-实验报告
链接地址:https://www.777doc.com/doc-7022061 .html