数字图像处理实验报告班级:学号:姓名:目录实验一MATLAB数字图像处理初步实验二图像的代数运算实验三图像增强-空间滤波实验四图像分割实验五形态学运算实验一MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验原理及知识点数字图像:一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
三、实验内容及步骤1.利用imread( )函数读取一幅图像,存入一个数组中;I=imread('lily'.tif');2.利用whos 命令提取该读入图像flower.tif的基本信息;whos I3.利用imshow()函数来显示这幅图像;imshow(I);4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;imfinfo('lily.tif');5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;imwrite(I,'flower.jpg','quality',50);6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。
imwrite(I,'flower.bmp');7.用imread()读入图像:Lenna.jpg 和camera.jpg;M=imread('Lenna.jpg'); N=imread('camera.jpg');8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;imfinfo('Lenna.jpg'); imfinfo('camera.jpg');9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。
figure(2),imshow('Lenna.jpg') imshow('camera.jpg')10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征P=imread('pic200.bmp')Q=im2bw(P)imshow(Q)四、实验仪器与软件(1) PC计算机(2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox)(3) 实验所需要的图片五、思考题(1) 简述MatLab软件的特点。
答:MatLab具有易学习使用、适用范围广、功能强、开放性强、支持图像、数据格式丰富的特点。
(2)MatLab软件可以支持哪些图像文件格式?答:支持的图像文件格式有JPEG/BMP/PCX/TIFF/PNG/GIF/HDF等多种图像格式。
(3)说明函数imread 的用途格式以及各种格式所得到图像的性质。
答:imread的常见调用格式为:A = imread(filename,fmt);其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。
如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename 所指的为RGB图像,则A为一个m×n×3的三维矩阵。
Filename表示的文件名必须在MATLAB 的搜索路径范围内,否则需指出其完整路径。
(4)为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?答:MATLAB系统默认的算术运算是针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号8位(MATLAB为图像提供的特殊的数据类型),直接进行运算会溢出。
实验二图像基本运算一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。
2.体会图像算术运算处理的过程和处理前后图像的变化。
二、实验原理图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。
如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。
使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。
注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。
三、实验步骤1.图像的加法运算在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。
I = imread(‘Sunset.jpg’);J = imread(‘Winter.jpg’);K = imadd(I,J);imshow(K);叠加结果如图所示。
待叠加的两幅图像叠加后的图像效果2.图像的减法运算在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。
imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。
M= imread(‘camerman.tif’);B= imopen(M, str el(‘disk’,15));N= imsubtract(M, B);subplot(1,2,1);imshow(M);subplot(1,2,2);imshow(B);原始图像减去背景图像3. 图像的乘法运算在MATLAB中,使用immultiply函数实现两幅图像的乘法。
immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。
I = imread(‘lily.tif’);J = immultiply(I,1.2);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J);原图和乘以因子1.2的图像4.图像的除法运算在MATLAB中使用imdivide函数进行两幅图像的除法。
imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。
M= imread(‘cameraman.tif’);I = double(M);J= I * 0.43 + 90;N= uint8(J);注:无符号八位整数的强制转换Q= imdivide(M, N);Imshow(Q, []);原图和减背景后的图像相除的图像效果四、思考题由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?答:图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。
图像减法可以作为许多图像处理工作的准备步骤。
例如,可以使用图像减法来检测一系列相同场景图像的差异。
图像减法与阈值化处理的综合使用往往是建立机器视觉系统最有效的方法之一。
在利用图像减法处理图像时往往需要考虑背景的更新机制,尽量补偿由于天气、光照等因素对图像显示效果造成的影响。
实验三图像增强—空域滤波一、实验目的进一步了解MatLab软件/语言,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。
了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。
二、实验要求(1)完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
(2)利用MATLAB软件实现空域滤波的程序:三、实验设备与软件(1) IBM-PC 计算机系统(2) MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)(3) 实验所需要的图片四、实验内容与步骤a) 调入并显示原始图像lenna.tif 。
b) 利用imnoise 命令在图像lenna.tif 上加入高斯(gaussian) 噪声 、椒盐噪声高斯噪声 椒盐噪声c)利用预定义函数fspecial 命令产生平均(average)滤波器111191111---⎡⎤⎢⎥--⎢⎥⎢⎥---⎣⎦ d )分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
高斯噪声均值滤波图像:3×3的均值模版 5×5的均值模版椒盐噪声均值滤波图像:3×3的均值模版5×5的均值模版五、思考题(1) 简述高斯噪声和椒盐噪声的特点。
答:高斯噪声是指噪声服从高斯分布,即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少,且这个规律服从高斯分布。
高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以用线性滤波器滤除。
椒盐噪声类似把椒盐撒在图像上,因此得名,是一种在图像上出现很多白点或黑点的噪声,如电视里的雪花噪声等。
椒盐噪声可以认为是一种逻辑噪声,用线性滤波器滤除的结果不好,一般采用中值滤波器滤波可以得到较好的结果。
(2)结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?答:相对而言,对于椒盐噪声,采用中值滤波更好。
(3)结合实验内容,定性评价滤波窗口对去噪效果的影响?答:不同的滤波窗口针对不同的噪声有不同的效果。
因此,针对不同的噪声类型,选择不同的滤波窗口也很重要。
实验四图像分割一、实验目的使用MatLab 软件进行图像的分割。