图像运算-实验报告
- 格式:docx
- 大小:318.25 KB
- 文档页数:18
数字图像处理实验报告实验一数字图像处理编程基础一、实验目的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数字图像处理初步一、显示图像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显示出来观察图像的特征。
图像编码实验报告图像编码实验报告一、引言图像编码是一项重要的技术,它可以将图像数据进行压缩和传输,以节省存储空间和传输带宽。
本实验旨在探究图像编码的原理和方法,并通过实验验证不同编码算法的性能和效果。
二、实验目的1. 理解图像编码的基本原理和概念;2. 掌握JPEG和PNG两种常见的图像编码算法;3. 分析和比较不同编码算法的压缩率和图像质量。
三、实验过程1. 实验环境搭建在本实验中,我们使用MATLAB软件进行图像编码实验。
首先,安装MATLAB 并导入实验所需的图像处理工具箱。
2. 图像压缩选择一张分辨率较高的彩色图像作为实验对象。
首先,使用JPEG编码算法对图像进行压缩。
在压缩过程中,可以调整压缩比例参数,观察压缩后图像的质量变化。
然后,使用PNG编码算法对同一张图像进行压缩,并比较JPEG和PNG 两种算法的压缩率和图像质量。
3. 实验结果分析根据实验结果,我们可以得出以下结论:- JPEG算法在高压缩比下会出现明显的失真,但在适当的压缩比下可以获得较好的图像质量;- PNG算法在压缩过程中不会导致明显的失真,但压缩率相对较低。
四、实验讨论1. 图像编码的原理图像编码是将图像数据转换为二进制码流的过程。
常见的图像编码方法包括无损编码和有损编码。
无损编码可以完全还原原始图像,但压缩率较低;有损编码可以获得较高的压缩率,但会引入一定的失真。
2. JPEG编码算法JPEG是一种常用的有损图像编码算法。
它采用离散余弦变换(DCT)将图像从空间域转换为频域,并通过量化和熵编码实现压缩。
JPEG算法在高频部分进行较大幅度的量化,从而实现高压缩率,但也导致了明显的失真。
3. PNG编码算法PNG是一种无损图像编码算法。
它采用预测编码和差分编码的方法,将图像数据转换为无损的二进制码流。
PNG算法在压缩过程中不引入明显的失真,但压缩率相对较低。
五、实验总结通过本次实验,我们深入了解了图像编码的原理和方法,并通过实验验证了JPEG和PNG两种编码算法的性能和效果。
实验三图像编码一、实验内容:用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 分别为数字图像在横(行)、纵(列)方向上的像素总数。
医学图像处理实验报告
班级 专业 姓名 学号
实验五 用Vc++实现医学图像的缩放
一、实验目的
(1)了解VC++在医学图像处理中的应用。
(2)熟悉用VC++进行医学图像缩放的编程方法。
二、实验设备
微机。
三、实验内容
(1)应用VC++进行医学图像的缩放。
四、实验步骤
1、开启VC++6.0,在菜单中选中File 单击鼠标左键,在下拉菜单中选中Open Workspce 单击鼠标左键,在打开的对话框中,根据路径:D:\WorkSpace\MedicalImageProcessingDLL\ MedicalImageProcessingDLL.dsw 打开工作空间。
2、在打开的VC 工作空间中首先找到类XH_MedicalImageProcessing,然后,在类中找到函数ImageDirectZoomOutBuf 。
3、在函数体内根据医学图像直接缩放法的数学表达式(1),进行医学图像缩放
的VC 编程。
()()11 1.0, 1.011zo n o n k zo
k o n c n c c k c k =+-⎧⎪<<⎨=+-⎪⎩ (1) 4、编程完毕,调试和运行程序,运行无误后,改变缩放系数观察图像的变化并拷贝所得图像。
5、整理所得图像,对实验结果进行分析。
五、实验结果和分析
Zoom0.3 Zoom0.5 Zoom0.7 Zoom0.9
Zoom1.0 Zoom0.8 Zoom0.6 Zoom0.4
六、思考题
1、直接缩放法有什么缺点?。
基于深度学习的像分类算法实验报告基于深度学习的图像分类算法实验报告一、实验背景随着信息技术的飞速发展,图像数据呈爆炸式增长,如何快速准确地对图像进行分类成为了一个重要的研究课题。
深度学习作为一种强大的机器学习技术,在图像分类任务中取得了显著的成果。
本实验旨在探索基于深度学习的图像分类算法的性能,并对实验结果进行分析和总结。
二、实验目的1、熟悉深度学习框架和相关技术,掌握图像分类算法的基本原理和实现方法。
2、比较不同深度学习模型在图像分类任务中的性能,包括准确率、召回率、F1 值等指标。
3、分析影响图像分类算法性能的因素,如数据预处理、模型架构、超参数设置等。
4、通过实验结果,提出改进图像分类算法性能的方法和建议。
三、实验环境1、硬件环境:_____CPU:_____GPU:_____内存:_____2、软件环境:操作系统:_____深度学习框架:_____编程语言:_____四、数据准备1、数据集选择本实验选择了常用的图像分类数据集_____,该数据集包含了_____个类别,每个类别有_____张图像。
数据集的特点:图像质量_____、类别分布_____、图像大小_____等。
2、数据预处理数据清洗:去除噪声、异常值和重复数据。
图像增强:采用随机旋转、裁剪、翻转等操作增加数据的多样性。
数据归一化:将图像像素值归一化到0, 1区间。
五、模型选择与实现1、模型选择本实验选择了以下几种深度学习模型进行比较:卷积神经网络(CNN):_____深度残差网络(ResNet):_____视觉Transformer(ViT):_____2、模型实现使用所选的深度学习框架搭建模型结构,并定义损失函数和优化器。
对于每个模型,设置不同的超参数,如卷积核大小、层数、学习率等,进行对比实验。
六、实验过程1、训练过程将预处理后的数据集按照一定比例划分为训练集、验证集和测试集。
使用训练集对模型进行训练,记录训练过程中的损失值和准确率。
身份证识别图像处理实验报告摘要:本实验通过图像处理技术,对身份证进行识别和处理。
通过对身份证图像的预处理、特征提取和识别算法的应用,实现了对身份证信息的自动提取和识别。
实验结果表明,该方法能够有效地识别身份证信息,具有较高的准确性和鲁棒性。
1. 引言身份证是一种重要的身份证明文件,广泛应用于各个领域。
然而,传统的手工识别方式效率低下且易出错。
因此,本实验旨在通过图像处理技术,实现对身份证的自动识别和信息提取。
2. 实验方法2.1 身份证图像预处理首先,对身份证图像进行预处理,包括灰度化、二值化、去噪等步骤。
通过将彩色图像转换为灰度图像,可以简化图像处理的复杂度。
然后,通过阈值分割将图像转化为二值图像,以便更好地提取身份证信息。
最后,采用滤波器等方法去除图像中的噪声,提高识别的准确性。
2.2 身份证信息提取在身份证图像预处理完成后,需要提取身份证的关键信息,包括姓名、性别、民族、出生日期、住址和身份证号码等。
通过图像处理技术,可以实现对这些信息的自动提取。
例如,通过模板匹配或特征点提取等方法,可以准确地提取身份证号码。
同时,结合OCR(Optical Character Recognition,光学字符识别)技术,可以提取其他文字信息。
2.3 身份证信息识别在身份证信息提取完成后,需要对提取的信息进行识别。
通过特征提取和分类算法,可以实现对身份证信息的准确识别。
例如,可以使用支持向量机(Support Vector Machine,SVM)等机器学习算法进行分类。
通过训练模型,可以将提取的身份证信息与已知的身份证信息进行匹配,从而实现识别。
3. 实验结果与分析经过实验,我们得到了一批身份证图像,并进行了图像处理和信息识别。
实验结果表明,该方法能够有效地识别身份证信息。
在识别准确率方面,我们进行了多次实验,平均准确率达到了90%以上。
同时,该方法对于不同类型的身份证图像都具有较好的鲁棒性,能够适应不同光照条件和角度的变化。
数字图像实验报告数字图像实验报告引言:数字图像处理是一门涉及计算机科学和电子工程的学科,它通过对图像进行数字化处理,实现对图像的分析、增强和改变。
本实验报告旨在介绍数字图像处理的基本概念和实验结果,以及对实验结果的分析和讨论。
一、实验目的本次实验的主要目的是了解数字图像处理的基本原理和方法,通过实践掌握常见的图像处理技术,并对实验结果进行分析和评估。
二、实验过程1. 图像获取在本次实验中,我们使用了一张自然风光的彩色图像作为实验对象。
这张图像包含了丰富的颜色和细节,能够很好地展示数字图像处理的效果。
2. 图像预处理在进行图像处理之前,我们需要对图像进行预处理,以便更好地进行后续处理。
预处理包括图像去噪、增强和边缘检测等步骤。
我们使用了常见的滤波算法对图像进行去噪处理,然后使用直方图均衡化技术对图像进行增强,最后使用边缘检测算法提取图像的边缘信息。
3. 图像分割图像分割是将图像分成若干个具有独立特征的区域的过程。
我们使用了基于阈值的分割方法对图像进行分割,通过调整阈值的大小,可以得到不同的分割结果。
4. 特征提取特征提取是从图像中提取出具有代表性的特征,用于进一步分析和处理。
我们使用了常见的特征提取算法,如边缘检测、角点检测和纹理特征提取等,从图像中提取出了边缘、角点和纹理等特征。
5. 图像重建图像重建是将经过处理的图像恢复到原始状态的过程。
我们使用了图像插值算法对图像进行重建,通过插值算法,可以将图像的分辨率提高,从而得到更清晰的图像。
三、实验结果经过以上的处理步骤,我们得到了一系列经过处理的图像。
通过对比原始图像和处理后的图像,我们可以看到图像处理对图像的改变和影响。
在图像去噪和增强的过程中,我们成功地去除了图像中的噪声,并增强了图像的对比度和细节。
在图像分割和特征提取的过程中,我们成功地将图像分割成若干个具有独立特征的区域,并提取出了图像的边缘、角点和纹理等特征。
在图像重建的过程中,我们成功地提高了图像的分辨率,得到了更清晰的图像。
图像拼接一、实验原理及实验结果图像拼接就是将一系列针对同一场景的有重叠部分的图片拼接成整幅图像,使拼接后的图像最大程度地与原始场景接近,图像失真尽可能小。
基于SIFT算法则能够对图像旋转、尺度缩放、亮度变化保持不变性,对视角变化,仿射变换,噪声也能保持一定程度的稳定性。
本次实验运用SIFT匹配算法来提取图像的特征点,采用随机抽样一致性算法求解单应性矩阵并剔除错误的匹配对。
最后用加权平均融合法将两帧图像进行拼接。
具体过程为:首先选取具有重叠区域的两帧图像分别作为参考图像和待拼接图像,然后使用特征提取算法提取特征点,并计算特征点描述子,根据描述子的相似程度确定互相匹配的特征点对。
再根据特征点对计算出待拼接图像相对于参考图像的单应性矩阵,并运用该矩阵对待拼接图像进行变换,最后将两帧图像进行融合,得到拼接后的图像。
1.特征点检测与匹配特征点检测与匹配中的尺度空间理论的主要思想就是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,再对这些序列就行尺度空间的特征提取。
二维的高斯核定义为:G(x,y,σ)=12πσ2e−(x2+y2)2σ2⁄对于二维图像I(x,y),在不同尺度σ下的尺度空间表示I(x,y,σ)可由图像I(x,y)与高斯核的卷积得到:L(x,y,σ)=G(x,y,σ)∗I(x,y)其中,*表示在x 和 y方向上的卷积,L表示尺度空间,(x,y)代表图像I上的点。
为了提高在尺度空间检测稳定特征点的效率,可以利用高斯差值方程同原图像进行卷积来求取尺度空间极值:D(x,y,σ)=(G(x,y,kσ)−G(x,y,σ))∗I(x,y)= L(x,y,kσ)−L(x,y,σ)其中k为常数,一般取k=√2。
SIFT算法将图像金字塔引入了尺度空间,首先采用不同尺度因子的高斯核对图像进行卷积以得到图像的不同尺度空间,将这一组图像作为金字塔图像的第一阶。
接着对其中的2倍尺度图像(相对于该阶第一幅图像的2倍尺度)以2倍像素距离进行下采样来得到金字塔图像第二阶的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第二阶的一组图像。
灰度图像处理实验报告实验背景灰度图像处理是图像处理中的一项重要任务,它通过将彩色图像转换为仅包含灰度信息的图像,从而简化图像处理的复杂度。
灰度图像处理在计算机视觉、图像识别和模式识别等领域有着广泛的应用。
实验目的本实验的目的是通过python编程实现灰度图像处理算法,包括灰度化、二值化、图像平滑以及直方图均衡化等,从而深入理解灰度图像处理的原理和算法,并掌握实现相关算法的编程技巧。
实验过程1. 数据准备在本次实验中,我们选用了一张彩色图像作为处理对象,该图像包含丰富的纹理和明暗变化。
首先,我们需要将彩色图像转换为灰度图像,以便后续的处理。
2. 灰度化灰度化将彩色图像转换为灰度图像,即将每个像素点的RGB三个分量的值按照一定的权重进行加权平均,得到对应的灰度值。
常用的加权平均法为:Gray = 0.299 * R + 0.587 * G + 0.114 * B上述公式中的0.299、0.587和0.114是经验值,表示红、绿和蓝三个分量的权重。
3. 二值化二值化将灰度图像转换为二值图像,即将每个像素点的灰度值与一个阈值进行比较,若大于阈值,则该像素点的值为255(表示白色),否则其值为0(表示黑色)。
在实际应用中,阈值的选取通常需要根据具体的图像和任务进行调整。
4. 图像平滑图像平滑是为了减少图像的噪声和细节,使得图像更加平滑,在一些图像处理任务中有着重要的应用。
常用的图像平滑算法包括均值滤波、中值滤波和高斯滤波等。
在本次实验中,我们选择了均值滤波作为图像平滑的算法,并使用一个3x3的滤波模板对图像进行卷积操作。
5. 直方图均衡化直方图均衡化是一种常用的图像增强技术,通过对图像的灰度级进行重新分配,使得原始图像中较暗的像素点和较亮的像素点在直方图上均匀分布,从而增强图像的对比度和视觉效果。
实验结果经过实验,我们得到了经过灰度化、二值化、图像平滑和直方图均衡化等处理后的图像。
与原始彩色图像相比,经过灰度化的图像丢失了颜色信息,但保留了图像的亮度信息;经过二值化的图像将图像的亮度信息进一步简化,只保留了黑色和白色两种颜色;经过图像平滑的处理,图像的细节和噪声得到了一定程度的抑制;经过直方图均衡化的处理,图像的对比度得到了显著的提升,整体的视觉效果更好。
评分 实验报告
课程名称 ___________ 医学图像处理 ________________ 实验名称 ___________ 图像运算 ____________________ 专业班级 ___________ 姓 名 ______________________ 学 号 ______________ 实验日期 ___________________ 实验地点 ___________
2015 — 2016学年度第 2 学期、实验目的 MATLAB的图像处理工具箱提供了图像运算函数。本实验将具体介绍 Matlab中的图像点运算、 代数运算、几何和邻域操作运算。 二、 实验环境 1、 硬件配置:处理器:In tel ( R) Core(TM) i7-3770 CPU @3.40GHz 3.40GHz 安装内存(RAM): 4.00GB 系统类型:64位操作系统 2、 软件环境:MATLAB R2013b 软件 三、 实验内容 利用Matlab 对图像进行点运算、加法运算、减法运算、乘法运算、除法运算、改变图像的 大小、旋转图像、图像的剪切、图像的邻域操作。 四、 实验结果与分析 (包括实验原理、数据的准备、运行过程分析、源程序(代码) 、图形图象界面等) 注:本项可以增加页数
例1 图像点运算 skull=imread('skull.tif); % 读取图像
subplot(131),imshow(skull) %生成一行三列三块区域,并在第一块区域绘制图像 l=double(skull); %转换为双精度类型
J=l*0.43+60; %利用该函数对输出图像进行压缩,使其对比度减小,图像变暗 skull2=uint8(J); %转换为 uint8 subplot(132),imshow(skull2) % 在第二块区域绘制图像 %利用该函数对输出图像进行对比度级数拓展,使其对比度增强,图像变亮 skull3=uint8(J); %转换为 uint8 subplot(133),imshow(skull3) %在第三块区域绘制图像
运行结果:
图1 原图像 图2 对比度减小的图像 图3 对比度增强的图像 分析:1)subplot是用于将多个图像画到一个平面上的函数。 subplot(m,n,p,) 中的m表示m行,n 表示n列,p表示从左到右的第几块区域; 2) uint8表示8位无符号的整型数
据类型,以此方式存储的图像称作 8位图像;而Matlab中
数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时, 应先把skull 图像转化为double格式; 3) 线性灰度变换函数 当a=1,b=0时,输出图像像素不发生变化;当 a=1,b 0时,
输出图像所有灰度值上移或下移; 当0 a 1时,输出图像灰度级压缩,对比度减小, 如图2所示;当a 1时,输出图像灰度级拓展,对比度增强,如图 3所示;当a 0 时,输出图像暗区域变亮,亮区域变暗,图像求反。
2、图像的代数运算 例2 图像加法运算 skull=imread('skull.tif); % 读取图像 imshow(skull) % 显示图像 J=imread('camerama n.tif); % 读取图像
J=I*1.5-60; figure,imshow(J) % 显示图像 匸imresize(skull,[256,256]); %将skull 图像转换为 256 256的大小 K=imadd(I,J); %对两幅图像的灰度值进行加法运算 figure,imshow(K) %显示图像 K2=imadd(l,J,'ui nt16'); %对两幅图像的灰度值进行加法运算,并转化为 ui nt16
figure,imshow(K2,[]) %显示图像
RGB=imread('skull.tif); RGB2=imadd(RGB,50); %读取图像
%将图像skull与常数50相加 imshow(RGB) % 显示 RGB 图像 figure,imshow(RGB2) %显示亮度增强50的RGB图像 RGB3=imadd(RGB,100); %
将图像skull与常数100相加
figure,imshow(RGB3) %显示亮度增强100的RGB图像
运行结果:
图6 两幅相加后的图像 图5 cameraman 原图像 图4 skull原图像 图9 亮度增强50后的图像 图7 转化为uint16的图像 图8 RGB原图 图10 亮度增强100后的图像 分析:1) imadd是用于实现两图像灰度值相加的函数, imadd(l,J)中的I和J要求大小相等,由 于我读取的skull图像的尺寸为1280 1024,因此在进行I和J的加法运算前须利用 imresize函数把skull图像转换为256 256的大小; 2) I和J进行相加后的图像如图6所示,而在I和J相加的基础上将其转换为 uint16的图像 如图7所示,我们可以清楚的发现图 6比图7的更亮,但细节比图7的模糊,这是由于 Matlab在运算后会自动将图像转换为 double型,因此uint16的图像是比double型 的图像更清晰; 3) imadd ( RGB,50 )是将一个常数50加到RGB图像上,即使图像的灰度级增强了 50, 如图9所示,以此类推,图10为灰度级增强了 100的图像。
例3 图像减法运算 l=imread('skull.tif); % 读取图像 imshow(I) %显示图像 backgrou nd=imope n(l,strel('disk',15)); % 估计圆盘半径为 15 的背景图像 figure,imshow(backgro un d); % 显示背景图 I2=imsubtract(I,backgro un d); %从原始图像中减去不均匀的背景图 运行结果: 分析:1 ) imopen开运算属于形态图像处理,是先腐蚀后膨胀,可以使边界平滑,消除尖刺, 断开窄小的连接,保持面积大小不变; strel是用于构建结构元素对象, imopen(l,strel('disk',15)) 就是构建圆盘半径为15的背景图,如图12所示;
2)imsubtract函数是用于两幅图像的相减运算,如图 13所示,减去不均匀的部分后, 图像变得更加平滑。 例4 图像的乘法运算 l=imread('skull.tif); %读取图像 J=immultiply(l,1.2); %图像的乘法,缩放因子是1.2>1,增强图像的亮度
K=immultiply(l,0.5); %图像的乘法,缩放因子是 0.5<1 ,减小图像的亮度
imshow(I) %显示原图像 figure,imshow(J) %显示亮度增强图像 figure,imshow(K) %显示亮度减小图像
图11 skull原图 图12 背景图 图13 减去背景图后的图像 运行结果: 分析:1 )乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分 2)一幅图像乘以一个常数通常被称为缩放。 immultiply(I,1.2),使用的缩放因数大于1, 那么将增强图像的亮度,如图15所示;immultiply(l,0.5) 中的因数小于1则会使图像
例5图像除法运算
运行结果:
图14 skull原图 变暗,如图 16所示。 l=imread('skull.tif); %读取原图像 J=double(l)*0.43+80; %利用该函数对输出图像进行处理,是对比度减小,图像变暗 J=uint8(J); %转换成 uint8 K=imdivide(l,J); %除法运算
imshow(I) %显示原图像 figure,imshow(J) %显示对比度减小的图像 figure,imshow(K) %显示灰度级相除后的图片
图15 亮度增强后的图像 图16 亮度减小后的图像 其灰度级减小,如图18所示; 2) imdivide(l,J)要求I和 J数据类型一致,因此在进行此运算时,须先将 double型的J转 换为uint8,两幅图像的灰度级相除后的到的结果为 [0,1],因为其灰度级极其相近且 小,肉眼无法分辨,故我们所看到的输出图像几近与纯黑色,如图 19所示; 3) 除法运算是用于校正成像设备的非线性影响。
例6图像的几何运算 l=imread('skull.tif); % 读取图像 J=imresize(l,1.25); %返回图像J,其长宽是图像I的长宽的1.25倍,即放大图像 K=imresize(l,0.8); %返回图像K,其长宽是图像I的长宽的0.8倍,即缩小图像 imshow(I) %显示原图 figure,imshow(J) %显示尺寸放大的图像 figure,imshow(K) %显示尺寸减小的图像
Y=imresize(l,[100,150]); %返回图像 Y,高度为 100,宽度为 150 figure,imshow(Y)
图17 skull原图 分析:1 ) J=double(l)*0.43+80 是将skull图像转换为double 型再对其进行灰度变换运算,使
%显示100 150的图像 图18 对比度减小的图片 图19 灰度级相除后的图片