数字图像处理 实验报告(完整版)
数字图像处理实验报告

数字图像处理实验报告实验一数字图像处理编程基础一、实验目的1. 了解MATLAB图像处理工具箱;2. 掌握MATLAB的基本应用方法;3. 掌握MATLAB图像存储/图像数据类型/图像类型;4. 掌握图像文件的读/写/信息查询;5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法;6. 编程实现图像类型间的转换。
二、实验内容1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。
2. 运行图像处理程序,并保存处理结果图像。
三、源代码I=imread('cameraman.tif')imshow(I);subplot(221),title('图像1');imwrite('cameraman.tif')M=imread('pout.tif')imview(M)subplot(222),imshow(M);title('图像2');imread('pout.bmp')N=imread('eight.tif')imview(N)subplot(223),imshow(N);title('图像3');V=imread('circuit.tif')imview(V)subplot(224),imshow(V);title('图像4');N=imread('C:\Users\Administrator\Desktop\1.jpg')imshow(N);I=rgb2gary(GRB)[X.map]=gary2ind(N,2)RGB=ind2 rgb(X,map)[X.map]=gary2ind(I,2)I=ind2 gary(X,map)I=imread('C:\Users\dell\Desktop\111.jpg');subplot(231),imshow(I);title('原图');M=rgb2gray(I);subplot(232),imshow(M);[X,map]=gray2ind(M,100);subplot(233),imshow(X);RGB=ind2rgb(X,map);subplot(234),imshow(X);[X,map]=rbg2ind(I);subplot(235),imshow(X);四、实验效果实验二 图像几何变换实验一、实验目的1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果;2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现;3.掌握matlab 编程环境中基本的图像处理函数。
数字图像处理实验报告 (图像编码)

实验三图像编码一、实验内容:用Matlab语言、C语言或C++语言编制图像处理软件,对某幅图像进行时域和频域的编码压缩。
二、实验目的和意义:1. 掌握哈夫曼编码、香农-范诺编码、行程编码2.了解图像压缩国际标准三、实验原理与主要框架:3.1实验所用编程环境:Visual C++6.0(简称VC)3.2实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:(如图3.1)图3.1 位图的文件结构具体组成图:单色DIB 有2个表项16色DIB 有16个表项或更少 256色DIB 有256个表项或更少 真彩色DIB 没有调色板每个表项长度为4字节(32位) 像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍biSize biWidth biHeight biPlanes biBitCount biCompression biSizeImagebiXPelsPerMeter biYPelsPerMeter biClrUsedbiClrImportantbfType=”BM ” bfSizebfReserved1 bfReserved2 bfOffBits BITMAPFILEHEADER位图文件头 (只用于BMP 文件)BITMAPINFOHEADER位图信息头Palette 调色板DIB Pixels DIB 图像数据3.3 数字图像基本概念数字图像是连续图像(,)f x y 的一种近似表示,通常用由采样点的值所组成的矩阵来表示:(0,0)(0,1)...(0,1)(1,0)(1,1)...(1,1).........(1,0)(1,1)...(1,1)f f f M f f f M f N f N f N M -⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥----⎣⎦每一个采样单元叫做一个像素(pixel ),上式(2.1)中,M 、N 分别为数字图像在横(行)、纵(列)方向上的像素总数。
数字图像处理实验报告

数字图像处理实验报告1. 引言数字图像处理是使用计算机来处理和优化图像的一种技术。
在本实验中,我们将探索几种常见的数字图像处理方法,并使用Python编程语言和相关库来实现。
2. 实验目的本实验的主要目的是:1.了解图像的基本特性和数字图像处理的基本原理;2.熟悉Python编程语言和相关图像处理库的使用;3.实现常见的图像处理算法并进行实验验证。
3. 实验方法在本实验中,我们使用Python编程语言和以下相关库来实现图像处理算法:•OpenCV:用于图像读取、显示和保存等基本操作;•Numpy:用于图像数据的处理和算术运算;•Matplotlib:用于图像的可视化和结果展示。
以下是实验涉及到的图像处理方法和步骤:1.图像读取和显示:使用OpenCV库读取图像,使用Matplotlib库显示图像;2.图像的灰度化:将彩色图像转换为灰度图像;3.图像的二值化:将灰度图像转换为黑白二值图像;4.图像的平滑处理:使用平滑滤波器对图像进行平滑处理,如均值滤波和高斯滤波;5.图像的边缘检测:使用边缘检测算法对图像进行边缘检测,如Sobel算子和Canny算子;6.图像的直方图均衡化:对灰度图像进行直方图均衡化,增强图像的对比度。
4. 实验过程和结果4.1 图像读取和显示首先,我们使用OpenCV库读取一张图像,并使用Matplotlib库显示该图像:import cv2import matplotlib.pyplot as plt# 读取图像img = cv2.imread('image.jpg')# 显示图像plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.axis('off')plt.show()4.2 图像的灰度化接下来,我们将彩色图像转换为灰度图像:# 灰度化图像gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 显示灰度图像plt.imshow(gray_img, cmap='gray')plt.axis('off')plt.show()4.3 图像的二值化然后,我们将灰度图像转换为黑白二值图像:# 二值化图像_, binary_img = cv2.threshold(gray_img, 128, 255, cv2.THRESH_BINARY)# 显示二值图像plt.imshow(binary_img, cmap='gray')plt.axis('off')plt.show()4.4 图像的平滑处理接下来,我们使用平滑滤波器对图像进行平滑处理,例如使用5x5的均值滤波器和高斯滤波器:# 均值滤波mean_img = cv2.blur(img, (5, 5))# 高斯滤波gaussian_img = cv2.GaussianBlur(img, (5, 5), 0) # 显示平滑处理后的图像plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(cv2.cvtColor(mean_img, cv2.COLOR_BGR2R GB))plt.title('Mean Filter')plt.axis('off')plt.subplot(122)plt.imshow(cv2.cvtColor(gaussian_img, cv2.COLOR_B GR2RGB))plt.title('Gaussian Filter')plt.axis('off')plt.show()4.5 图像的边缘检测然后,我们使用边缘检测算法对图像进行边缘检测,例如使用Sobel算子和Canny算子:# 边缘检测sobel_img = cv2.Sobel(gray_img, cv2.CV_8U, 1, 1, ksize=3)canny_img = cv2.Canny(gray_img, 50, 150)# 显示边缘检测结果plt.figure(figsize=(10, 5))plt.subplot(121)plt.imshow(sobel_img, cmap='gray')plt.title('Sobel Operator')plt.axis('off')plt.subplot(122)plt.imshow(canny_img, cmap='gray')plt.title('Canny Operator')plt.axis('off')plt.show()4.6 图像的直方图均衡化最后,我们对灰度图像进行直方图均衡化,以增强图像的对比度:# 直方图均衡化equalized_img = cv2.equalizeHist(gray_img)# 显示直方图均衡化结果plt.imshow(equalized_img, cmap='gray')plt.axis('off')plt.show()5. 实验总结通过本实验,我们熟悉了数字图像处理的基本方法和步骤,并使用Python编程语言和相关库实现了图像的读取、显示、灰度化、二值化、平滑处理、边缘检测和直方图均衡化等操作。
数字图像处理实验报告

目录实验一数字图像滤波处理 (2)实验二数字图像锐化处理 (10)实验三数字图像平滑处理 (14)实验四数字图像的直方图规定化 (16)实验五数字图像的傅立叶变换 (20)实验一 数字图像滤波处理一、 实验目的(一) 掌握数字图像滤波处理的算法原理。
(二) 熟悉数字图像滤波处理的算法原理。
二、 实验原理和方法(一)均值滤波平滑线形空间滤波的输出(响应)是包含在滤波掩模邻域内像素的简单平均值。
因此,这些滤波器也称均值滤波器,指的是低通滤波器。
它是用滤波掩模确定的邻域内像素的平均灰度值代替图像中每个像素点的值,这种处理减小了图像灰度的“尖锐”变化。
图1-1显示了两个33⨯的平滑滤波器。
第一个滤波器产生掩模下的标准像素平均值,把掩模系数代入式z w z w z w z w i i i R ∑==+++=91992211 (1.1)(w 为掩模系数,z 为与该系数对应的灰度值)即可得∑=911i z R (1.2)图1-1 两个33⨯均值滤波器掩模。
R 是由掩模定义的33⨯邻域像素灰度的平均值。
一个n m ⨯掩模应有mn 1的归一化常数。
图1-1第二种掩模更重要,也称加权平均,处于掩模中心位置的像素比其他任何像素就显得不太重要 。
由于对角项离中心比离正交方向相邻的像素更远,所以它的重要性比与中心直接相邻的四个像素低。
把中心点加强的最高,而随着距中心加强为最高,而随着距中心点距离的增加减小系数值,是为了减小平滑处理中的模糊。
所有系数的和是16,2的整数次幂,便于计算机的实现。
一幅N M ⨯的图像经过一个n m ⨯(m 和n 是奇数)的加权均值滤波器滤波的过程可由下式给出:)())(()(∑∑∑∑-=-=-=-=++=a a s bbt a a s bbt t s w t y s x f t s w y x g ,,,, (1.3)可理解为一幅完全滤波的图像是由对1,2,1,0-=M x 和1,2,1,0-=N y 执行式(1.3)得到的。
数字图像处理实验报告

数字图像处理实验报告专业:学号:目录实验一MATLAB数字图像处理初步 (1)实验二图像的代数运算 (8)实验三图像增强—灰度变换 (16)实验四图像增强—直方图变换 (18)实验五图像增强—空域滤波 (22)实验六图像的傅立叶变换 (27)实验七图像增强—频域滤波 (32)实验八彩色图像处理 (40)实验九图像分割 (54)实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验原理及知识点1、数字图像的表示和类别图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MATLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像(2) 二值图像(3) 索引图像(4) RGB图像三、实验内容及步骤1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;>> i=imread('flower.tif');2.利用whos 命令提取该读入图像flower.tif的基本信息;>>whos iName Size Bytes Class Attributesi 1x1 1 uint83.利用imshow()函数来显示这幅图像;>> imshow(i)4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;>> imfinfo ('flower.tif')ans =Filename:'C:\Program Files\MATLAB\R2011a\bin\flower.tif'FileModDate: '1-Apr-2013 08:32:36'FileSize: 286256Format: 'tif'FormatVersion: []Width: 517Height: 350BitDepth: 24ColorType: 'truecolor' FormatSignature: [73 73 42 0] ByteOrder: 'little-endian' NewSubFileType: 0 BitsPerSample: [8 8 8] Compression: 'PackBits' PhotometricInterpretation: 'RGB' StripOffsets: [70x1 double] SamplesPerPixel: 3 RowsPerStrip: 5 StripByteCounts: [70x1 double] XResolution: 96 YResolution: 96 ResolutionUnit: 'Inch' Colormap: [] PlanarConfiguration: 'Chunky' TileWidth: []TileLength: []TileOffsets: [] TileByteCounts: [] Orientation: 1FillOrder: 1 GrayResponseUnit: 0.0100 MaxSampleV alue: [255 255 255] MinSampleValue: [0 0 0] Thresholding: 1Offset: 285464ImageDescription: 'MATLAB Handle Graphics'5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。
2.掌握数字图像处理的基本方法。
3.掌握常用数字滤波器的性质和使用方法。
4.熟练应用数字图像处理软件进行图像处理。
实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。
% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。
图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。
在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。
RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。
% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。
数字图像处理中的滤波是一种常用的图像增强方法。
滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。
% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。
这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。
下面是数字图像处理在人脸识别应用中的一个简单例子。
% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。
数字图像处理图像变换实验报告.

实验报告实验名称:图像处理姓名:刘强班级:电信1102学号:1404110128实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;3、观察图像的灰度直方图,明确直方图的作用和意义;4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果;5、观察图像正交变换的结果,明确图像的空间频率分布情况。
三、实验原理1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。
图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。
点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。
如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:B(x,y)=f[A(x,y)]其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。
一旦灰度变换函数确定,该点运算就完全确定下来了。
另外,点运算处理将改变图像的灰度直方图分布。
点运算又被称为对比度增强、对比度拉伸或灰度变换。
点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。
图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。
实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。
下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:2、图像正交变换的基本原理及编程实现步骤数字图像的处理方法主要有空域法和频域法,点运算和几何变换属于空域法。
数字图像处理实验报告

数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。
二、实验设备计算机,Matlab程序平台。
三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。
任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。
噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。
消除图像噪声的工作称为图像平滑或滤波。
针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。
平滑可以在空间域进行,也可以在频率域进行。
1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。
假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。
因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。
对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。
2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。
其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。
其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。
二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。
2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验一 MATLAB数字图像处理初步一、显示图像1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>>I=imread('lily.tif')>> whos I>> imshow(I)二、压缩图像4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。
7.用imread()读入图像Sunset.jpg和Winter.jpg;8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小;9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。
其中9的实验结果如下图:源代码:4~6(接上面两个) >>I=imread('lily.tif')>> imfinfo 'lily.tif';>> imwrite(I,'lily.jpg','quality',20);>> imwrite(I,'lily.bmp');7~9 >>I=imread('Sunset.jpg');>>J=imread('Winter.jpg')>>imfinfo 'Sunset.jpg'>> imfinfo 'Winter.jpg'>>figure(1),imshow('Sunset.jpg')>>figure(2),imshow('Winter.jpg')三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。
实验结果如下图:源代码:>> I=imread('lily.tif')>>gg=im2bw(I,0.4);F>>igure, imshow(gg)原始图像:四、思考题(1) 简述MatLab软件的特点。
答:①高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;②具有完备的图形处理功能,实现计算结果和编程的可视化;③友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;④功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
(2) MatLab软件可以支持哪些图像文件格式?JPEG、JPEG、PCX、TIFF、PNG、GIF、HDF、XWD等等。
(3) 说明函数imread 的用途格式以及各种格式所得到图像的性质。
imread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。
(4) 为什么用I = imread(‘lena.bmp’) 命令得到的图像I 不可以进行算术运算?Matlab系统默认的算术运算时针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号8位,直接进行运算会溢出。
实验二图像的代数运算一.图像的加法运算在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。
imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。
imadd函数的调用格式如下:Z = imadd(X,Y)其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。
实验结果如下图:源代码:I = imread(‘Sunset.jpg’);J = imread(‘Bluehills.jpg’);K = imadd(I,J);imshow(K);(两幅图尺寸大小一致)原始图像:给图像的每一个像素加上一个常数可以使图像的亮度增加。
效果如下:源代码>>RGB = imread(‘cameraman.tif’);>>RGB2 = imadd(RGB,50);>>subplot(1,2,1);imshow(RGB);>>subplot(1,2,2);imshow(RGB2);二、图像的减法运算在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。
imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。
imsubtract函数的调用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的结果。
实验结果如下图:源代码>>rice = imread('cameraman.tif')>>background = imopen(rice, strel('disk',15))>>rice2 = imsubtract(rice, background)>>subplot(1,2,1);imshow(rice);>>subplot(1,2,2);imshow(rice2);三、图像的乘法运算在MATLAB中,使用immultiply函数实现两幅图像的乘法。
immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。
immulitply函数的调用格式如下:Z = immulitply(X,Y) 其中,Z=X*Y。
实验结果如下图:源代码I>> = imread('zhaowei.bmp')>>J = immultiply(I,1.2)>>subplot(1,2,1);imshow(I)>>subplot(1,2,2);imshow(J)四、图像的除法运算在MATLAB中使用imdivide函数进行两幅图像的除法。
imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。
imdivide函数的调用格式如下:Z = imdivide(X,Y) 其中,Z=X/Y。
实验结果如下图:源代码>>Rice = imread('cameraman.tif');>>I = double(Rice);>>J= I * 0.43 + 90>>Rice2 = uint8(J)>>Ip = imdivide(Rice, Rice2)>>Imshow(Ip, [])原图像五、思考题由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?答:使用背景减法进行运动目标检测可以提取出完整的目标图像.可将所得标用于进一步的图像处理工作中。
除去人身体在环境中运动产生的动态区域外.背景减法对其它的动态场景的变化、干扰等特别敏感背景图像获取的理想情况是在场景没有运动因素,最简单背景获取方法是当场景中任何目标时采集一幅图像作为背景图像,但这种固定背景图像的方法.只适合应于外界条件较好的场。
实验三 图像增强—空域滤波一、实验内容与步骤a) 调入并显示原始图像Sample2-1.jpg 。
b) 利用imnoise 命令在图像Sample2-1.jpg 上加入高斯(gaussian) 噪声 c)利用预定义函数fspecial 命令产生平均(average)滤波器111191111---⎡⎤⎢⎥--⎢⎥⎢⎥---⎣⎦ d )分别采用3x3和5x5的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;e )选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。
f )利用imnoise 命令在图像Sample2-1.jpg 上加入椒盐噪声(salt & pepper) g )重复c)~ e )的步骤h)输出全部结果并进行讨论。
二、实验结果与源代码源代码>>I=imread('cameraman.tif');J = imnoise(I,'gauss',0.02);J = imnoise(I,'salt & pepper',0.02);ave1=fspecial('average',3);ave2=fspecial('average',5);K = filter2(ave1,J)/255;L = filter2(ave2,J)/255;M = medfilt2(J,[3 3]);N = medfilt2(J,[4 4]);imshow(I);figure,imshow(J);figure,imshow(K);figure,imshow(L);figure,imshow(M);figure,imshow(N);三、思考题/问答题(1)简述高斯噪声和椒盐噪声的特点。
高斯噪声是指噪声的概率密度函数服从高斯分布(即正态分布)的一类噪声。
如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。
高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。
高斯白噪声包括热噪声和散粒噪声。
而椒盐噪声是指椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。
椒盐噪声往往由图像切割引起。
(2)结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?通过实验可以看出,中值滤波对椒盐噪声的消噪处理效果比较好,但是对高斯噪声的消噪处理效果不是很理想(3) 结合实验内容,定性评价滤波窗口对去噪效果的影响?对比实验结果可以发现:发现对于椒盐噪声,中值滤波效果更好。