期终项目总结报告
课程名称: 数字图像处理 课程编号: 07S
题目: 数字图像处理实验报告
研究生姓名: (签字) 学 号: 评语:
成 绩: 任课教师:
评阅日期:
数字图像处理实验报告
前言:因为的做的实验较多,所以选取几个有代表性的实验,分别归成三类图像编辑,
图像调整,图像分割。
实验一 图像编辑
实验目的:
1. 熟悉并掌握MATLAB图像处理工具箱的使用
2. 熟悉图像的缩放,旋转,裁剪以及格式转换,了解其变换原理,深入熟悉它的编程
原理
3. 理解并掌握常用的图像的变换技术
实验环境:
MATLAB 6.5以上版本、WIN XP或WIN7、8计算机
实验程序:
1、图像缩放 clear
I=imread('cats.tif');
subplot(2,2,1),imshow(I);title('原始图像') X1=imresize(I,0.15,'nearest');
subplot(2,2,2),imshow(X1,[]);title('最近邻插值法实现图像缩放') X2=imresize(I,0.15,'bilinear');
subplot(2,2,3),imshow(X2,[]);title('双线性插值法实现图像缩放') X3=imresize(I,0.15,'bicubic');
subplot(2,2,4),imshow(X3,[]);title('双立方插值法实现图像缩放')
2、图像旋转 clear I=imread('cats.tif'); J=imrotate(I,35, 'bilinear');
subplot(1,2,1),imshow(I);title('原始图像')
subplot(1,2,2),imshow(J);title('逆时针旋转35°图像')
3、图像裁剪 clear
I=imread('cats.tif');
msgbox('请选择要裁剪的区域,并双击选定区域以显示','提示信息'); waitforbuttonpress; clf;
I2=imcrop(I); close
subplot(1,2,1),imshow(I);title('原始cats——RGB图像'); subplot(1,2,2),imshow(I2);title('裁剪后的cats——RGB图像')
4、图像格式转换 clear
I=imread('cats.tif');
transform(I); %transform()函数是自己写的一个函数,是显示图像I的灰度,索引,二值图像 I=imread('gray.bmp'); transform(I);
实验结果:
1、图像缩放:
2、图像旋转:
3、图像裁剪
4、图像格式转换
实验总结:
图像缩放是指对数字图像的大小进行调整的过程。在实验中我用三种方法对图像进行了缩放,分别是最进邻近插值法,双线性插值法和双立方插值法,从实验结果看来,是第三种方法双立方插值法效果比前两种的方法效果来的好,因为双立方插值法由最近的16个像素点得到的结果,所以双三次插值是一种更加复杂的插值方式,它能创造出比双线性插值更平滑的图像边缘。
图像旋转中我们用的是双线性旋转,原理也较简单我这里就不做深入分析了;第三种图像裁剪中我们利用的是matlab的自带函数imcrop();第四种的图像格式转换我们可以直观的感受不同格式的图像之间的差别。
实验二 图像调整
实验目的:
1、 熟悉并掌握MATLAB图像处理工具箱的使用
2、 熟悉图像的直方图均衡化、去背景,了解其变换原理,深入熟悉它的编程原理 3、 了解形态学的基本应用
4、 理解并掌握常用的图像的均衡化及去背景技术
实验环境:
MATLAB 6.5以上版本、WIN XP或WIN7、8计算机 实验程序:
1、直方图均衡化 clear
I=imread('cats.tif'); gray=rgb2gray(I); J=histeq(gray);
subplot(2,2,1),imshow(gray);title('原始cats灰度图像');
subplot(2,2,2),imshow(J);title('直方图均衡化后的cats灰度图像'); subplot(2,2,3),imhist(gray);title('原始cats灰度图像直方图');
subplot(2,2,4),imhist(J);title('直方图均衡化后的cats灰度图像直方图');
2、去背景 clear
I=imread('cats.tif') gray=rgb2gray(I);
subplot(1,3,1),imshow(gray) title('原始cats灰度图像')
background=imopen(gray,strel('disk',40))
subplot(1,3,2),imshow(background); title(' imopen后的图像') I2=imsubtract(gray,background); subplot(1,3,3),imshow(I2) title('减去背景后的图像')
实验结果:
1、 直方图均衡化
2、去背景
实验结论
均衡化后直方图趋向平坦,灰级减少,灰度合并。原始图像含有象素数多的几个灰级间隔被拉大了,压缩的只是象素数少的几个灰 度级,实际视觉能够接收的信息量大大地增强
了,增加了图象的反差。从图中我们可以看出增加了图象的可视粒度。第二个实验中我们利用的是图像的膨胀效果对图像背景的去除,膨胀操作,相当于结构元素的中心点沿被操作图像边缘外部走一圈,所有中心点的轨迹所包围的区域。就如实验结果中,对于模糊背景的去除效果很好。
实验三 图像边缘检测及分割
实验目的:
1. 熟悉并掌握MATLAB图像处理工具箱的使用
2. 通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的
影响;
3. 理解并掌握常用的图像的均衡化及去背景技术
实验环境:
MATLAB 6.5以上版本、WIN XP或WIN7、8计算机
实验程序:
1、 边缘检测 clear
I=imread('gray.bmp'); BW1=edge(I,'sobel'); BW2=edge(I,'canny'); BW3=edge(I,'prewitt'); BW4=edge(I,'log');
subplot(3,2,1),imshow(I);title('原始cats灰度图像'); subplot(3,2,3),imshow(BW1);title('Sobel边缘检测'); subplot(3,2,4),imshow(BW2);title('Canny边缘检测'); subplot(3,2,5),imshow(BW2);title('prewitt边缘检测'); subplot(3,2,6),imshow(BW2);title('log边缘检测');
2、图像分割 I=imread('gray.bmp');
subplot(2,2,1),imshow(I);title('原始cats灰度图像'); Ic=imcomplement(I); BW=im2bw(Ic,graythresh(Ic));
subplot(2,2,2),imshow(BW);title('阈值截取分割后图像'); se=strel('disk',6); BWc=imclose(BW,se); BWco=imopen(BWc,se);
subplot(2,2,3),imshow(BWco);title('对小图像进行删除后图像'); mask=BW&BWco;
subplot(2,2,4),imshow(mask);title('检测结果的图像');
实验结果:
1、 边缘检测
2、图像分割
实验结论:
本实验中我们采用基于阈值的分割方法来分割图像,从一开始的边缘检测中我们可以看出相比几种算子之中,sobel算子的边缘检测效果比canny,prewitt和log边缘检测的效果更贴合原图像。图像分割中我们利用graythresh()函数,这个函数是使用最大类间方差法找到图片的一个合适的阈值来对图像进行阈值分割。
因篇幅问题不能全部显示,请点此查看更多更全内容