实验一 Matlab_图像处理基本操作
MATLAB图像处理基础教程

MATLAB图像处理基础教程第一章:MATLAB图像处理简介MATLAB(Matrix Laboratory)是一种强大的数值计算和数据可视化软件,广泛应用于各个领域,包括图像处理。
图像处理是一门研究如何对数字图像进行分析、增强、重建和压缩的学科。
本教程将引导读者逐步了解MATLAB图像处理的基本概念和技术。
第二章:MATLAB图像的读取与显示在MATLAB中,可以使用imread函数读取不同格式的图像文件,并使用imshow函数显示图像。
此外,还可以使用imfinfo函数获取图像的详细信息,如分辨率、颜色空间和位深度等。
第三章:图像的灰度处理灰度处理是一种常见的图像预处理方法。
通过将彩色图像转换为灰度图像,可以减少图像的数据量,简化图像处理的复杂性。
在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像,并使用imhist函数查看灰度图像的直方图。
第四章:图像的滤波处理滤波是一种常用的图像处理操作,用于对图像进行平滑、增强或去噪。
MATLAB提供了各种滤波函数,如均值滤波、中值滤波和高斯滤波等。
可以根据具体需求选择合适的滤波方法,并使用imfilter函数进行滤波处理。
第五章:图像的二值化处理图像的二值化是将图像转换为黑白两色的过程,常用于物体检测、识别和分割等应用。
在MATLAB中,可以使用im2bw函数将灰度图像转换为二值图像,并可以调整阈值来控制二值化的效果。
第六章:图像的几何变换几何变换是一种常见的图像处理操作,用于对图像进行旋转、缩放、平移和翻转等操作。
MATLAB提供了imrotate、imresize、imtranslate和flip函数等实现各种几何变换。
通过组合这些函数,可以实现复杂的图像变换。
第七章:图像的特征提取图像的特征提取是图像处理中的重要步骤,用于从图像中提取出具有代表性的信息。
在MATLAB中,可以使用各种特征提取函数,如imgradient、imhistogram和imcontour等。
实验一 Matlab图像处理基础及图像灰度变换

实验一Matlab图像处理基础
一、实验目的
熟悉Matlab平台下的图像编程环境;
掌握基本的Matlab运算符应用方法;
掌握基本的主、子函数调用方法;
掌握基本的图像读、写等函数;
掌握Matlab帮助文档使用方法。
二、实验内容
1.观察matlab软件环境;
2.练习+,-,*,/,^,.+,.-,.*,./,.^ 等运算符号的使用方法;
3.编写主函数实现图像的读取、显示及写入;
4.编写子函数实现图像的翻转;
5.主函数调用子函数实现图像的翻转;
6.利用Matlab帮助文档查看相应函数的使用方法。
三、知识要点
1.Matlab支持的图像图形格式
TIFF, JEPG, GIF, BMP, PNG 等。
2.与图像处理相关的最基本函数
读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo; 图像选装:imrotate 3.Matlab支持的数据类
double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical.
4.数据类及图像类型间的基本转换函数
数据类转换:B = data_class_name(A);
作业:
1.简述.*,./,.^的使用方法,与+,-,*,/,^的区别,用实例演示。
2.通过主、子函数实现图像的旋转。
湖南大学医学影像学实验之matlab图像处理实验报告

实验一、空域图像处理1、灰度线性变换:I=imread('trees.tif') ;figure(1) ; imshow(I) ; title('原图') ;J=double(I) ; %把I变成双精度并赋值给JJ=3*J+74 ; %对J进行线性变换J=uint8(J) ;figure(2) ; imshow(J) ; title('线性变换') ;图像:思考题:设定不同的斜率值和截距,显示效果会怎样?答:斜率增加,像素点的灰度值会根据本身的灰度值按比例增加,所以深色部分会变少,浅色部分会变多,整张图片上白色区域会变多;截距增加,所有像素点的灰度值都会增加,所以整张图片会变淡。
添加噪声:I=imread('trees.tif') ;M=imnoise(I,'salt & pepper',0.02) ; %添加椒盐噪声%因为每次添加椒盐噪声都是这两句代码,所以就不重复打出来了,直接看效果图下同~( ̄▽ ̄~)~~~图像:椒盐噪声+线性变换:椒盐噪声是随机产生的噪声,包括高灰度和低灰度的噪声。
线性变换基本上没有多少去噪的功能,更多的应该是用于改变对比度。
(中值)直方图均衡化:I=imread('rice.png') ;subplot(2,2,1) ; imshow(I) ; title('原图') ;subplot(2,2,3) ; imhist(I) ;J=double(I) ; %把I变成双精度并赋值给Jmax=J(1,1) ; min=J(1,1) %把J(1,1)赋值给max和min[N1,N2]=size(I) ; %得到矩阵I的行和列for i=1:N1for j=1:N2if J(i,j)>maxmax=J(i,j) ; %如果元素值大于max,则把元素值赋给maxendif J(i,j)<minmin=J(i,j) ; %如果元素值小于min,则把元素值赋给minendendendn=round((max+min))/2 ; %取元素最大值和最小值的中间值,即中间灰度值a=(255-max)/(max-n) ;b=min/(n-min) ;%根据原图中max和min,求得运算倍率a和b,以确保在接下来的运算中,原图像的max和min可以准确被定为到255和0for i=1:N1for j=1:N2if J(i,j)>=nJ(i,j)=J(i,j)+a*(J(i,j)-n) ;end%当元素灰度值大于或等于中间灰度值时,将该元素的灰度值变大if J(i,j)<nJ(i,j)=J(i,j)-b*(n-J(i,j)) ;end%当元素灰度值小于中间灰度值时,将该元素的灰度值变小endendK=uint8(real(J)) ;subplot(2,2,2) ; imshow(K) ;title('直方图均衡化') ;subplot(2,2,4) ; imhist(K) ;思考题:直方图均衡化是什么意思?它的主要用途是什么?答:直方图均衡化是将一副像素灰度级范围较窄的图像的像素灰度级的范围扩大并分布均匀。
实验一MATLAB数字图像处理初步

实验一MATLAB数字图像处理初步实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。
2.熟练掌握在MATLAB中如何读取图像。
3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。
4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。
5.图像间如何转化。
二、实验内容及步骤1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中;2.利用whos 命令提取该读入图像flower.tif的基本信息;3.利用imshow()函数来显示这幅图像;4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。
6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp 图像,设为flower.bmp。
7.用imread()读入图像:Lenna.jpg 和camema.jpg;8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像的质量。
10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow 显示出来观察图像的特征。
11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步得到的图像效果拷贝下来。
三、实验结果四、实验小结1、使用imread指令的时候,后边的地址不经要在括号内,还要注意:必须要有引号。
但是,把文件放在变量中间存储便可以,也一定不可以加引号。
2、whos 后边不需要加括号,只需要加空格就可以。
实验一 Matlab语言及数字图像处理基本操作

实验一Matlab语言及数字图像处理基本操作一、实验目的1、学习MATLAB语言的基本用法;2、掌握MATLAB语言中图像数据与信息的读取方法;3、掌握在MATLAB中绘制灰度直方图的方法;4、掌握灰度直方图的均衡化的方法;5、利用基本灰度变换对图像进行增强二.实验环境及开发工具Windws XP、MATALAB7.0三.实验原理及方法1、验证MATLAB中图像数据的读写及显示(1)imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename 为读取的图像文件(可以加上文件的路径)。
(2)imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map 写入文件filename。
(3)imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。
(4)MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。
需要显示多幅图像时,可以使用figure语句,它的功能就是重新打开一个图像显示窗口。
2、验证图像对比度增强函数Imadjust如果原图像f(x,y)的灰度范围是[m,M],我们希望调整后的图像g(x,y)的灰度范围是[n,N],那么下述变换,,就可以实现这一要求。
(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
数字图像处理实验一图像的基本操作和基本统计指标计算实验报告

实验一图像的基本操作和基本统计指标计算一、实验目的熟悉MATLAB图像处理工具箱,在掌握MATLAB基本操作的基础上,本课程主要依靠图像处理工具箱验证和设计图像处理算法。
对于初学者来说,勤学多练、熟悉MATLAB图像处理工具箱也是学号本课程的必经之路。
了解计算图像的统计指标的方法及其在图像处理中的意义。
了解图像的几何操作,如改变图像大小、剪切、旋转等。
二、实验主要仪器设备(1)台式计算机或笔记本电脑(2)MATLAB(安装了图像处理工具箱,即Image Processing Toolbox(IPT))(3)典型的灰度、彩色图像文件三、实验原理(1)将一幅图像视为一个二维矩阵。
(2)利用MATLAB图像处理工具箱读、写和显示图像文件。
①调用imread函数将图像文件读入图像数组(矩阵)。
例如“I=imread(‘tire.tif’);”。
其基本格式为:“A=imread(‘filename.fmt’)”,其中,A为二维矩阵,filename.为文件名,fmt为图像文件格式的扩展名。
②调用imwrite函数将图像矩阵写入图像文件。
例如“imwrite(A,’test_image.jpg’);”。
其基本格式为“imwrite(a,filename.fmt)”。
③调用imshow函数显示图像。
例如“imshow(‘tire.tif’);”。
其基本格式为:I为图像矩阵,N为显示的灰度级数,默认时为256。
(3)计算图像有关的统计参数。
四、实验内容(1)利用MATLAB图像处理工具箱和Photoshop读、写和显示图像文件。
(2)利用MATLAB计算图像有关的统计参数。
五、实验步骤(1)利用“读图像文件I/O”函数读入图像Italy.jpg。
(2)利用“读图像文件I/O”的iminfo函数了解图像文件的基本信息:主要包括Filename(文件名)、FileModDate(文件修改时间)、Filesize(文件尺寸)、Format(文件格式)、FormatVersion (格式版本)、Width(图像宽度)、Height(图像高度)、BitDepth(每个像素的位深度)、ColorType (彩色类型)、CodingMethod(编码方法)等。
实验一 MATLAB数字图像处理初步

实验一MATLAB数字图像处理初步一、实验目的1、熟悉及掌握在MATLAB中能够处理哪些格式图像。
2、熟练掌握在MATLAB中读取图像,并获取图像的大小、颜色、高度、宽度等等相关信息。
3、掌握在MATLAB中按照指定要求存储一幅图像的方法。
4、熟悉数字图像矩阵的格式转换二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。
灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。
例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。
因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。
图像关于x和y坐标以及振幅连续。
要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。
将坐标值数字化成为取样;将振幅数字化成为量化。
采样和量化的过程如图1所示。
因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。
作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。
图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MATLAB把其处理为4类: 亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。
若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。
若图像是double类,则像素取值就是浮点数。
规定双精度型归一化亮度图像的取值范围是[0,1](2) 二值图像一幅二值图像是一个取值只有0和1的逻辑数组。
而一幅取值只包含0和1的uint8类数组,在MATLAB中并不认为是二值图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一Matlab 图像处理基本操作和付立叶变换
一、matlab基本操作
1. 显示图像
>> I1=imread('D:\图像\LENA.BMP');
>> imshow(I1);
>> I2=imread('D:\图像\***.BMP');
>> imshow(I2);
2、检查内存(数组)中的图像:
>> whos
3、保存图像:
>> imwrite(I2,'lena_2G.png'); % 将图像由原先的bmp格式另存为png格式
4、多幅图像显示
>> I1=imread('D:\图像\LENA.BMP');
>> figure //出现图形显示窗口>> subplot(1,2,1),imshow(I1);
>> I2=imread('D:\图像\**.BMP');
>> subplot(1,2,2),imshow(I2);
二、傅里叶变换
1.目的:
a、理解傅里叶变换的原理
b、掌握傅里叶变换的性质
2.实验步骤:
a. 首先构造一幅黑白二值图像,在128×128的黑色背景中心产生一个4×4的白色方块,对其进行傅里叶变换;(Matlab中用fft2实现2D傅里叶变换)
b.把低频分量移到图象中心,而把高频分量移到四个角上;(方法有两种:
其一,在FT以前对测试图象逐点加权(-1)^(i+j);其二,利用FFTSHIFT函数);
c.利用图象增强中动态范围压缩的方法增强2DFT;(Y=C*log(1+abs
(X)));
d.构造一幅黑白二值图像,在128×128的黑色背景中令第32行至36行、第
32列至第36列的值为1(即产生一个4×4的白色方块),对其进行傅里叶
变换;
e. 将上图旋转300,再进行傅里叶变换 (imrotate )
f. 构造二幅黑白二值图像,在128×128的黑色背景中分别令第60行至68行、第60列至第68列的值为1,第64行至65行、第64列至第65列的值为1产生两幅图像,分别对这两幅图像进行傅里叶变换
3、原理分析、技术讨论、回答问题
a. 对于第二幅图像(第一步与第四步图像的比较),说明FOURIER 变换具有以下性质:
)//(20000),(),(N vy M ux j e v u F y y x x f +-⇔--π
b. 对于第三幅图像(第一步与第五步图像的比较),说明FOURIER 变换具有以下性质:
θcos r x = θs i n r y = αωc o s =u αωs i n
=v ),(),(00θαωθθ+⇔+F r f
c. 对于第四幅图像(第一步与第六步图像的比较),说明FOURIER 变换具有以下性质:
)/,/(|
|1),(b v a u F ab by ax f = 4、结果如下
六、M文件如下:
a=zeros(128,128);
a(63:66,63:66)=1;
A=fft2(a);
b=fftshift(A);
for i=1:128
for j=1:128
B(i,j)=log(1+abs(A(i,j)));
end
end
h=zeros(128,128);
h(32:36,32:36)=1;
H=fft2(h);
h1=imrotate(h,30);
H1=fft2(h1);
i=zeros(128,128);
i(60:68,60:68)=1;
I=fft2(i);
j=zeros(128);
j(64:65,64:65)=1;
J=fft2(j);
figure;
subplot(221),imshow(a);title('原图');
subplot(222),imshow(A);title('FT');
subplot(223),imshow(b);title('低中高角FT'); subplot(224),imshow(B);title('增强2DFT');
figure;
subplot(221);imshow(a);title('Step 1原图'); subplot(222);imshow(A);title('Step 1FT'); subplot(223);imshow(h);title('Step 4原图'); subplot(224);imshow(H);title('Step 4FT');
figure;
subplot(221),imshow(a);title('Step 1原图'); subplot(222),imshow(A);title('Step 1FT'); subplot(223),imshow(h1);title('Step 5原图'); subplot(224),imshow(H1);title('Step 5FT');
figure;
subplot(321);imshow(a);title('Step 1原图'); subplot(322);imshow(A);title('Step 1FT'); subplot(323),imshow(i);title('Step 6原图1'); subplot(324),imshow(I);title('Step 6原图1FT'); subplot(325),imshow(j);title('Step 6原图2'); subplot(326),imshow(J);title('Step 6原图2FT');。