实验一Matlab图像处理基础及图像灰度变换
matlab图像处理图像灰度变换直方图变换
附录1 课程实验报告格式每个实验项目包括:1)设计思路,2)程序代码,3)实验结果,4)实验中出现的问题及解决方法。
实验一:直方图灰度变换A:读入灰度图像‘debye1.tif’,采用交互式操作,用improfile绘制一条线段的灰度值。
imread('rice.tif');imshow('rice.tif'),title('rice.tif');improfile,title('主对角线上灰度值')B:读入RGB图像‘flowers.tif’,显示所选线段上红、绿、蓝颜色分量的分布imread('flowers.tif');imshow('flowers.tif'),title('flowers.tif');improfile,title('主对角线红绿蓝分量')C:图像灰度变化f=imread('rice.png');imhist(f,256); %显示其直方图g1=imadjust(f,[0 1],[1 0]); %灰度转换,实现明暗转换(负片图像)figure,imshow(g1)%将0.5到0.75的灰度级扩展到范围[0 1]g2=imadjust(f,[0.5 0.75],[0 1]);figure,imshow(g2)图像灰度变换处理实例:g=imread('me.jpg');imshow(g),title('原始图片');h=log(1+double(g)); %对输入图像对数映射变换h=mat2gray(h); %将矩阵h转换为灰度图片h=im2uint8(h); %将灰度图转换为8位图imshow(h),title('转换后的8位图');运行后的结果:实验二:直方图变换A:直方图显示I=imread('cameraman.tif'); %读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题运行结果如下:例子:读入图像‘rice.png’,在一个窗口中显示灰度级n=64,128和256的图像直方图。
图像灰度变换实验报告
实验2a 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。
二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。
三、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。
我们可以分别使用MA TLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。
为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。
如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。
代数运算的结果很容易超出数据类型允许的范围。
图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。
2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。
对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。
需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。
数字图像处理实验报告(图像灰度变换处理)
数字图像处理实验报告班级:姓名:学号:数字图像处理实验报告一.实验名称:图像灰度变换二.实验目的:1 学会使用Matlab;2 学会用Matlab软件对图像灰度进行变换,感受各种不同的灰度变换方法对最终图像效果的影响。
三.实验原理:Matlab中经常使用的一些图像处理函数:读取图像:img=imread('filename'); //支持TIFF,JPEG,GIF,BMP,PNG,XWD等文件格式。
显示图像:imshow(img,G); //G表示显示该图像的灰度级数,如省略则默认为256。
保存图片:imwrite(img,'filename'); //不支持GIF格式,其他与imread相同。
亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in至high_in之间的值映射到low_out至high_out之间,low_in 以下及high_in以上归零。
绘制直方图:imhist(img);直方图均衡化:histeq(img,newlevel); //newlevel表示输出图像指定的灰度级数。
像平滑与锐化(空间滤波):w=fspecial('type',parameters);imfilter(img,w); //这两个函数结合将变得十分强大,可以实现photoshop里的任意滤镜。
图像复原:deconvlucy(img,PSF); //可用于图像降噪、去模糊等处理。
四.实验步骤:1.获取实验用图像:Fig3.10(b).jpg. 使用imread函数将图像读入Matlab。
2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105+2.6333(r–0.35) 0.35 ≤ r ≤ 0.65 1+0.3(r–1) r > 0.65用T1对原图像Fig3.10(b).jpg进行处理,打印处理后的新图像。
MATLAB图像处理之灰度图像
MATLAB图像处理之灰度图像实验内容一:如何将彩色图像转化为灰度图像实验程序:I=imread('0045.JPG');%导入真彩图片“0046.jpg”,是三维矩阵x=rgb2gray(I);%转化为灰度图像,是二维矩阵figure(1);%第一个图像subplot(1,2,1);%表示本区域内显示1行2列个图像,改图位于第1个位置上imshow(I);%显示彩色图像title('原始图像');%给彩色图像命名subplot(1,2,2);%表示本区域内显示1行2列个图像,改图位于第2个位置上imshow(x);%显示灰度图像title('灰度图像');%命名灰度图像实验结果:实验内容二:如何将真彩图片转换为三个灰度图像,再还原为伪彩图像,并按照下述方式排列实验程序:x1=imread('0045.jpg');%导入真彩图片0046.jpg,是三维矩阵figure(1)%第一个图像subplot(334);%本区域内显示一个3行3列个图像,该图像位于第4个imshow(x1),title('原图像')%显示真彩图像,并命名为“原图像”I=rgb2gray(x1);%转化为灰度图像,是二维矩阵rgb = ind2rgb(gray2ind(I,255),jet(255));%转化为伪彩图像subplot(336);%本区域内显示一个3行3列个图像,该图像位于第6个imshow(rgb);%显示伪彩图title('伪彩')%命名为“伪彩”fR=x1(:,:,1);%提取红色fG=x1(:,:,2);%提取绿色fB=x1(:,:,3);%提取蓝色subplot(3,3,2),imshow(fR),title('灰度r');%本区域内显示3行3列个图像,该图像位于第2个,显示fR图像,命名为“灰度r”subplot(3,3,5),imshow(fG),title('灰度g');%本区域内显示3行3列个图像,该图像位于第5个,显示fG图像,命名为“灰度g”subplot(3,3,8),imshow(fB),title('灰度b');%本区域内显示3行3列个图像,该图像位于第8个,显示fB图像,命名为“灰度b”实验结果:。
matlab简单图像处理实验报告
实验一:图像文件类型转换实验目的:理解数字图像文件的几种基本类型掌握在MATLAB中进行图象文件类型转换的方法观察图象转换前后的效果加深对图象文件类型的理解熟悉图象格式、颜色系统间的转换实验内容:1)灰度图像与索引图像的相互转换2)RGB图像与索引图像的相互转换3)将图像转换为二值化图像实验方法:利用MATLAB工具进行实验一、灰度图像到索引图像的转换clear>> info=imfinfo('rice.png')info =Filename: 'rice.png'FileModDate: '26-Jan-2003 00:03:06'FileSize: 44607Format: 'png'FormatVersion: []Width: 256Height: 256BitDepth: 8ColorType: 'grayscale'FormatSignature: [137 80 78 71 13 10 26 10]Colormap: []Histogram: []InterlaceType: 'none'Transparency: 'none'SimpleTransparencyData: []BackgroundColor: []RenderingIntent: []Chromaticities: []Gamma: []XResolution: []YResolution: []ResolutionUnit: []XOffset: []YOffset: []OffsetUnit: []SignificantBits: []ImageModTime: '27 Dec 2002 19:57:12 +0000'Title: []Author: []Description: 'Rice grains'Copyright: 'Copyright The MathWorks, Inc.'CreationTime: []Software: []Disclaimer: []Warning: []Source: []Comment: []OtherText: []RGB=imread('rice.png');>> figure(3);>> imshow(RGB);>> figure(1);>> [RGB1,map1]=gray2ind(RGB,128);>> imshow(RGB1,map1);>> figure(2);>> [RGB2,map2]=gray2ind(RGB,16);>> imshow(RGB2,map2);>> imwrite(RGB1,map1,'3.bmp');>> imwrite(RGB2,map2,'4.bmp');图3 图1图2实验结果分析:从上述实验结果,我们可以看出灰度级不同,图像的亮度也不一样。
数字图像处理实验 图像生成及取反 图像亮(灰)度变换
数字图像处理实验报告实验一图像处理入门实验:图像生成及取反1、【实验目的】了解matlab有关图像的基本操作,如图像的读写,显示等。
熟悉调试环境。
2、【实验步骤】(1)Matlab workspace中生成一幅大小为512×512像素的8位灰度图, 背景为黑色,中心有一个宽40像素高20像素的白色矩形。
(2)将这幅图像保存为文件test.bmp。
•从文件test.bmp中读出图像到变量I。
•在Matlab图形界面中显示变量I所代表的图像。
•将获得的图像的格式分别转换为“*.tif”、“*.jpg”的格式保存,检查图像文件数据量的大小。
•将图片保存或拷贝到MATLAB程序组根目录的“work”文件夹中,以便后面的实验利用。
•将test.bmp 编程取反,观察效果。
3、【实验源码】(1)图像生成B=zeros(512,512)(2) 在图像中生成宽40像素高20像素的白色矩形for i=246:266for j=246:266B(i,j)=1;endend(3)图像保存imwrite(B,'test.bmp')(4)读出图像到变量I并另存为“*.tif”、“*.jpg”的格式e=imread('test.bmp')imshow(e)imwrite(e,'test.tif')imwrite(e,'test.jpg')(5)将test.bmp 编程取反for j=1:512for k=1:512if(i(j,k)==255)i(j,k)=0;elsei(j,k)=255;end;endend4、【实验截图】查看文件大小将test.bmp 编程取反5、【实验小结】(1)通过本次实验,对Matlab软件处理图像的相关功能有了初步了解。
(2)在灰度图像的取反操作中,可以使用双重循环,对每一行每一列的象素值进行更改操作。
实验二图像亮(灰)度变换1、【实验目的】灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
实验一Matlab图像处理基础及图像灰度变换 - 中南大学信.
实验一Matlab图像处理基础及图像灰度变换一、实验目的了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。
掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
二、实验内容1.从硬盘中读取一幅灰度图像;2.显示图像信息,查看图像格式、大小、位深等内容;3.用灰度面积法编写求图像方图的Matlab程序,并画图;4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。
5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。
三、知识要点1.Matlab6.5支持的图像图形格式TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。
2.与图像处理相关的最基本函数读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo;3.Matlab6.5支持的数据类double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical.4.Matlab6.5支持的图像类型Intensity images, binary images, indexed images, RGB image5.数据类及图像类型间的基本转换函数数据类转换:B = data_class_name(A);四、参考程序和参考结果1.求灰度直方图===================================================================== % Experiment 1: calculate the histogram of gray-scale through gray-scale area% functionf=imread('J:\ebook and code_ex\image processing\digital image process2_Woods\DIP usingMatlab\image database\dipum_images_ch02\dipum_images_ch02\Fig0206(a)(rose-original).tif');[m,n]=size(f);gray_area=zeros(1,256);% compute the area under certain gray levelfor k=0:255ind = find(f == k);gray_area(k+1) = length(ind);end% compute the histogram by performing the difference for gray_areahist=zeros(1,256);for k=0:254hist(k+1)=gray_area(k+2)-gray_area(k+1);end% normalizationhist=hist/numel(f);subplot(121); imshow(f);subplot(122);stem([1:1:256],hist,'.');axis([1 256 0 max(hist)]);===============================================================================f = imread('Fig0308(a)(pollen).tif'); subplot(221); imshow(f); title('the orignal image'); subplot(222); imhist(f); ylim('auto');g = histeq(f, 256);subplot(223); imshow(g);title('image after equalization'); subplot(224); imhist(g);ylim('auto');the orignal image5010015020025004image after equalization5010015020025004。
实验一数字图像基本操作及灰度调整
实验一 数字图像基本操作及灰度调整一.实验目的1.掌握读、写图像的基本方法;2.掌握MATLAB 语言中图像数据与信息的读取方法;3.理解图像灰度变换处理在图像增强的作用;4.掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方法。
二.实验基本原理1. 灰度变换灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。
1) 图像反转灰度级范围为[0, L-1]的图像反转可由下式获得r L s --=12) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围,如直接使用原图,则一部分细节可能丢失。
解决的方法是对原图进行灰度压缩,如对数变换:s = c log(1 + r ),c 为常数,r ≥ 03) 幂次变换:0,0,≥≥=γγc cr s4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸:其对应的数学表达式为:2. 直方图均衡化灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的频度,它是图像最基本的统计特征。
依据定义,在离散形式下, 用r k 代表离散灰度级,用p r (r k )代表p r (r ),并且有下式成立:nn r P k k r =)( 1,,2,1,010-=≤≤l k r k 式中:n k 为图像中出现r k 级灰度的像素数,n 是图像像素总数,而n k /n 即为频数。
直方图均衡化处理是以累积分布函数变换法为基础的直方图修正法。
假定变换函数为ωωd p r T s r r)()(0⎰==(a) Lena 图像 (b) Lena 图像的直方图图1-1 Lena 图像及直方图当灰度级是离散值时,可用频数近似代替概率值,即1,,1,010)(-=≤≤=l k r n n r p k k k r式中:l 是灰度级的总数目,p r (r k )是取第k 级灰度值的概率,n k 是图像中出现第k 级灰度的次数,n 是图像中像素总数。
图像灰度化处理 matlab 实验报告
X x通大学数字图像处理与通信课程实验报告班级:实验项目名称:图像灰度化处理实验项目性质:设计性实验实验所属课程:数字图像处理与图像通信实验室(中心):网络实验中心指导教师:实验完成时间: 2012 年 10 月 16 日教师评阅意见:签名:年月日实验成绩:一、实验目的:首先通过实验熟悉matlab、matlab 编程环境以及其基本操作,和对图像的读取、显示、保存等一些操作,增加自己的实际动手能力。
二、实验主要内容及要求:1.熟悉matlab或者C#的编程环境,完成在相关环境下图像的读入、显示、保存等操作;2.完成图像的灰度化处理。
三、实验设备及软件:PC机一台,MATBLAB。
四、设计方案五、主要代码及必要说明f=imread('28.jpg');%读取图像figure(1);imshow(f); %显示图像[n m a]=size(f);%判断图像的大小for x=1:n %通过双循环对图像进行灰度化处理for y=1:mp(x,y)=0.3*f(x,y,1)+0.59*f(x,y,2)+0.11*f(x,y,3);endendfigure(2);imshow(p);%显示处理后的图像imwrite(p,'abc.jpg'); %保存处理后的图像六、测试结果及说明:(1)实验原图:(2)实验结果:七、实验体会:首先通过本次实验,自己对matlab这款软件的基本操作了解同时也学会了对图像的一些基本操作,比如图像的读取、保存、修改,灰度化处理等等一些操作,与此同时学会了在调试的过程当中要注意细节,因为自己对彩色图像处理所以注意是三位数组,以及循环的时候注意结束语语句,实验也增加了自己实际动手能力。
用matlab实现图像灰度变换课程设计
用matlab实现图像灰度变换课程设计课程设计报告册课程名称: MATLAB课程设计课题名称:灰度变换增强专业班级:姓名: Bob Wang 学号: 15164 课程设计主要场所:信息楼220时间:指导教师:成绩:前言数字图像处理技术是20世界60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用前景。
MATLAB既是一种直观、高效的计算机语言,同时又是一个科学计算平台。
它为数据分析和数据可视化、算法和应用程序开发提供了最核心的数学和高级图形工具。
根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或变成以完成各自的计算。
MATLAB中集成了功能强大的图像处理工具箱。
由于MATLAB语言的语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式,而且这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以MATLAB在图像处理的应用中具有很大的优势。
MATLAB是一种以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的要求,与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
我们学习掌握MATLAB,也可以说是在科学工具上与国际接轨。
目录一、课程设计目的 (2)二、设计任务及内容 (2)三、课题设计实验条件 (3)四、涉及知识 (3)五、具体设计过程及调试 (4)5.1、图像的读入和显示5.1.1、打开图像 (4)5.1.2、显示原图像 (5)5.1.3、图像灰度处理 (7)5.1.4、显示灰阶后图像 (8)5.2、直方图均衡化5.2.1、生成直方图 (10)5.2.2、直方图均衡化 (12)5.3、灰度变换5.3.1、线性变换 (9)5.3.2、分段线性变换 (9)5.3.3、非线性变换.................................... (9)六、心得体会 (17)七、参考文献 (18)八、程序清单 (19)一、设计目的本次课程设计旨在提升学生的动手能力,加强并巩固对专业理论知识的理解和实际运用。
实验一 图像的灰度变换及直方图均衡化
实验一:图像灰度变换及直方图均衡化实验一、实验目的:1. 掌握灰度直方图的概念及其计算方法;2. 掌握利用图像灰度变换实现对图像的增强处理;3. 掌握利用直方图直方图均衡化和直方图规定化实现对图像的增强处理;4. 熟悉MA TLAB中图像增强的相关函数。
二、实验设备:1. 硬件设备:计算机;2. 软件环境:Windows+Matlab编程与仿真环境;3. 其他设备:记录用的纸、笔,以及U盘等存储设备。
三、实验原理:灰度直方图(histogram)是灰度级的函数,它表示图像中具有每种灰度级的像素的个数,反映图像中每种灰度出现的频率。
一般来说,灰度直方图的横坐标是灰度级,纵坐标是该灰度级出现的概率,是图像的最基本的统计特性。
从概率论的观点来理解,灰度出现的频率可看作其出现的概率,这样直方图就对应于概率密度函数PDF(Probability Density Function),而概率分布函数就是直方图的累积和,即概率密度函数的积分。
1. 直方图均衡化直方图均衡化是通过灰度变换将一幅图像转换另一幅具有均衡直方图,即在每个灰度级上都具有相同的像素点数的过程。
设灰度变换s=T(r)为斜率有限的非减连续可微函数,它将输入图像A(x,y)转换为输出图像B(x,y),输入图像的直方图为H a(r),输出图像的直方图为H b(s),它们的关系如下:图1.1 输入图像和输出图像直方图之间的关系图直方图均衡化的基本思想是把原始图像的直方图变换成均匀分布的形式图像灰度值的动态范围,从而达到了增强图像整体对比度的效果。
具体方法为:①列出原始图像的灰度级Sk, k=0,1…L-1,其中L是灰度级的个数;②统计原始图像各灰度级的像素数目nk;③计算原始图像直方图各灰度级的频率数;④计算原始图像的累计直方图;⑤取整计算;⑥确定映射关系;⑦统计新直方图各个灰度级的像素数目nk;⑧计算新的直方图。
2. 灰度变换灰度变换是图像增强的另一种重要手段,它可使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。
matlab图像的灰度变换
实验二 图像的灰度变换一、实验目的1、 理解数字图像处理中点运算的基本作用;2、 掌握对比度调整与灰度直方图均衡化的方法。
二、实验原理1、对比度调整如果原图像f (x , y )的灰度范围是[m , M ],我们希望对图像的灰度范围进行线性调整,调整后的图像g (x , y )的灰度范围是[n , N ],那么下述变换:[]n m y x f mM n N y x g +---=),(),(就可以实现这一要求。
MA TLA B 图像处理工具箱中提供的i ma d j ust 函数,可以实现上述的线性变换对比度调整。
imadj u st 函数的语法格式为:J = imadj u st(I,[low_i n high_i n], [low_o u t high_o ut])J = imadj u st(I, [low_i n high_i n], [low_o u t high_o ut])返回原图像I 经过直方图调整后的新图像J ,[low_i n high_i n]为原图像中要变换的灰度范围,[low_o u t high_o ut]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。
不使用im adjus t 函数,利用mat l ab 语言直接编程也很容易实现灰度图像的对比度调整。
但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是u i nt8型,而在MAT LAB 的矩阵运算中要求所有的运算变量为d o uble 型(双精度型)。
因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。
2、直方图均衡化直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。
图像处理灰度变换实验
一 . 实验名称: 空间图像增强(一)一. 实验目的1. 熟悉和掌握利用matlab 工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。
2. 熟练掌握各种空间域图像增强的基本原理及方法。
3. 熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。
4. 熟悉直方图均衡化的基本原理、方法和实现。
二. 实验原理(一)数字图像的灰度变换灰度变换是图像增强的一种经典而有效的方法。
灰度变换的原理是将图像的每一个像素的灰度值通过一个函数, 对应到另一个灰度值上去从而实现灰度的变换。
常见的灰度变换有线性灰度变换和非线性灰度变换, 其中非线性灰度变换包括对数变换和幂律(伽马)变换等。
1、线性灰度变换1)当图像成像过程曝光不足或过度, 或由于成像设备的非线性和图像记录设备动态范围太窄等因素, 都会产生对比度不足的弊病, 使图像中的细节分辨不清,图像缺少层次。
这时,可将灰度范围进行线性的扩展或压缩, 这种处理过程被称为图像的线性灰度变换。
对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。
2)令原图像 f(x,y)的灰度范围为 [a,b],线性变换后得到图像 g(x,y),其灰度范围为 [c,d],则线性灰度变换公式可表示为d , f ( x, y) bg(x, y)dc[ f (x, y) a] c, a f ( x, y) b (1)b aac, f ( x, y)由 (1)式可知,对于介于原图像 f(x,y)的最大和最小灰度值之间的灰度值,可通过线性变换公式, 一一对应到灰度范围 [c,d]之间,其斜率为 (d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值, 令其分别恒等于变换后的最小和最大灰度值。
变换示意图如图 1 所示。
图 1 线性灰度变换示意图当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。
MATLAB图像处理命令及图形基本操作实验报告
实验(一)常用MATLAB图像处理命令及图形基本操作
end
end
end
for i=1:m
for j=1:n
out(i,j,1)=R(i,j);
% imshow(out)
out(i,j,2)=G(i,j);
out(i,j,3)=B(i,j);
end
end
out=out/256;
figure(1),imshow(out)
%imshow(out)
size(out)
imwrite(out,'PseudoColor.tiff');
end
4、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。
RGB=imread('f:\1.jpg')
gray = rgb2gray(RGB)
I = im2bw(RGB,0.5)
subplot(3,1,1);imshow(a);title('原图像');
subplot(3,1,2);imshow(i);title('灰度图像');colormap(gray);
subplot(3,1,3);imshow(I);title('二值图像');
实验结果如图所示:
四、实验总结:
Imread 是读入文件的操作代码,subplot是将多个图画到一个平面上的工具本次实验在老师的带领下熟悉了matlab软件的具体操作
通过书写代码,操作程序实现了灰度图像转换为伪彩色图像;
通过书写代码实现了读入一幅RGB图像,并将其变换为灰度图像和二值图像,然后在同一个窗口中显示RGB图像和灰度图像。
matlab 图像 实验报告
matlab 图像实验报告Matlab图像实验报告引言:Matlab是一种强大的计算机编程语言和开发环境,广泛应用于科学计算、数据分析和图像处理等领域。
本实验报告旨在介绍基于Matlab的图像处理实验,包括图像读取、图像处理和图像显示等方面的内容。
一、图像读取图像读取是图像处理的第一步,通过读取图像可以获取图像的像素信息。
在Matlab中,可以使用imread函数来读取图像文件。
例如,通过以下代码可以读取一张名为"image.jpg"的图像:```matlabimage = imread('image.jpg');```二、图像处理1. 灰度化处理灰度化处理是将彩色图像转换为灰度图像的过程。
在Matlab中,可以使用rgb2gray函数来实现灰度化处理。
以下是一个简单的示例:```matlabgray_image = rgb2gray(image);```2. 图像增强图像增强是通过一系列的处理方法来改善图像的质量和视觉效果。
在Matlab中,有多种图像增强方法可供选择,如直方图均衡化、滤波和边缘检测等。
以下是一个直方图均衡化的示例:```matlabenhanced_image = histeq(gray_image);```3. 图像分割图像分割是将图像划分为若干个区域的过程,每个区域具有相似的特征。
在Matlab中,可以使用各种图像分割算法,如阈值分割和基于区域的分割。
以下是一个简单的阈值分割示例:```matlabthreshold = graythresh(enhanced_image);binary_image = imbinarize(enhanced_image, threshold);```三、图像显示图像显示是将处理后的图像展示给用户的过程。
在Matlab中,可以使用imshow函数来显示图像。
以下是一个简单的示例:```matlabimshow(binary_image);```四、实验结果与讨论本次实验中,我们选择了一张名为"image.jpg"的彩色图像进行处理。
数字图像处理:图像的灰度变换(Matlab实现)
数字图像处理:图像的灰度变换(Matlab实现)(1)线性变换:通过建⽴灰度映射来调整源图像的灰度。
k>1增强图像的对⽐度;k=1调节图像亮度,通过改变d值达到调节亮度⽬的;0i = imread('theatre.jpg');i = im2double(rgb2gray(i));[m,n]=size(i);%增加对⽐度Fa = 1.25; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(221), imshow(O);title('Fa = 1.25, Fb = 0, contrast increasing');figure(2),subplot(221), [H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 1.25, Fb = 0, contrast increasing');%减⼩对⽐度Fa =0.5; Fb = 0;O = Fa.*i + Fb/255;figure(1), subplot(222),imshow(O);title('Fa = 0.5, Fb = 0, contrast decreasing');figure(2), subplot(222), [H,x] = imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 0, contrast decreasing');%线性亮度增加Fa = 0.5; Fb = 50;O = Fa.*i + Fb/255;figure(1), subplot(223), imshow(O);title('Fa = 0.5, Fb = 50, brightness control');figure(2), subplot(223), [H,x]=imhist(O,64);stem(x, (H/m/n), '.');title('Fa = 0.5, Fb = 50, brightness control');%反相显⽰Fa = -1; Fb = 255;O = Fa.*i + Fb/255;figure(1), subplot(224), imshow(O);title('Fa = -1, Fb = 255, reversal processing');figure(2), subplot(224),[H,x]=imhist(O, 64);stem(x, (H/m/n), '.');title('Fa = -1, Fb = 255, reversal processing');(2)对数变换:增强低灰度,减弱⾼灰度值。
实验一 Matlab_图像处理基本操作
实验一Matlab 图像处理基本操作和付立叶变换一、matlab基本操作1. 显示图像>> I1=imread('D:\图像\LENA.BMP');>> imshow(I1);>> I2=imread('D:\图像\***.BMP');>> imshow(I2);2、检查内存(数组)中的图像:>> whos3、保存图像:>> 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 fc. 对于第四幅图像(第一步与第六步图像的比较),说明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:128for j=1:128B(i,j)=log(1+abs(A(i,j)));endendh=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');。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一Matlab图像处理基础及图像灰度变换
一、实验目的
了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。
掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
二、实验内容
1.从硬盘中读取一幅灰度图像;
2.显示图像信息,查看图像格式、大小、位深等内容;
3.用灰度面积法编写求图像方图的Matlab程序,并画图;
4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。
5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。
三、知识要点
1.Matlab6.5支持的图像图形格式
TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。
2.与图像处理相关的最基本函数
读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo;
3.Matlab6.5支持的数据类
double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical.
4.Matlab6.5支持的图像类型
Intensity images, binary images, indexed images, RGB image
5.数据类及图像类型间的基本转换函数
数据类转换:B = data_class_name(A);
四、参考程序和参考结果
1.求灰度直方图
===================================================================== % Experiment 1: calculate the histogram of gray-scale through gray-scale area
% function
f=imread('J:\ebook and code_ex\image processing\digital image process2_Woods\DIP using
Matlab\image database\dipum_images_ch02\dipum_images_ch02\Fig0206(a)(rose-original).tif');
[m,n]=size(f);
gray_area=zeros(1,256);
% compute the area under certain gray level
for k=0:255
ind = find(f == k);
gray_area(k+1) = length(ind);
end
% compute the histogram by performing the difference for gray_area
hist=zeros(1,256);
for k=0:254
hist(k+1)=gray_area(k+2)-gray_area(k+1);
end
% normalization
hist=hist/numel(f);
subplot(121); imshow(f);
subplot(122);stem([1:1:256],hist,'.');
axis([1 256 0 max(hist)]);
===============================================================================
2. 直方图均衡化
f = imread('Fig0308(a)(pollen).tif');
subplot(221); imshow(f);
title('the orignal image');
subplot(222); imhist(f);
ylim('auto');
g = histeq(f, 256);
subplot(223); imshow(g);
title('image after equalization');
subplot(224); imhist(g);
ylim('auto');。