数字图像处理——彩色图像实验报告

合集下载

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告实验一数字图像处理编程基础一、实验目的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 编程环境中基本的图像处理函数。

图像颜色增强处理——彩色变换实验报告

图像颜色增强处理——彩色变换实验报告

图像颜色增强处理(彩色变换)实验专题讲座课程:遥感科学与图像处理实验:图像颜色增强处理(彩色变换)姓名:学号:指导老师:一、实验名称图像颜色增强处理(彩色变换)二、实验目的对图像进行彩色变换;观察图像在不同色彩空间之间相互转换的结果异同,理解影像光谱增强中彩色变换的原理及其增强效果,将图象转换成一种更适合于人或机器进行分析处理的形式,提高图像的使用价值。

三、实验原理光谱增强是基于多光谱数据对波段进行变换达到图像增强处理,采用一系列技术去改善图象的视觉效果,或将图象转换成一种更适合于人或机器进行分析处理的形式。

有选择地突出某些对人或机器分析有意义的信息,抑制无用信息,提高图象的使用价值。

在使用单波段图像时,由于成像系统动态范围的限制,地物显示的亮度值差异较小。

又由于人眼对黑白图像亮度级的分辨能力仅有10~20级左右,而对色彩和强度的分辨力可达100多种,因此将黑白图像转换成彩色图像可使地物的差别易于分辨[1,2]。

1. 彩色合成(color composite)在通过滤光片、衍射光栅等分光系统而获得的多波段图像中选出三个波段,分别赋予三原色进行合成。

根据各波段的赋色不同,可以得到不同的彩色合成图像。

1)图像主成分变换融合主成分变换融合[2]是建立在图像统计基础上的多维线性变换,具有方差信息浓缩、数据量压缩的作用, 可以更准确地揭示多波段数据结构内部的遥感信息, 常常是以高空间分辨率数据代替多波段数据变换以后的第一主成分来达到融合的目的。

具体过程是: a. 对多波段遥感数据进行主成分变换( K- L 变换) ; b. 以高空间分辨率遥感数据替代变换以后的第一主成分; c. 进行主成分逆变换,生成具有高空间分辨率的多波段融合图像。

2) 真彩色合成在通过蓝、绿、红三原色的滤光片而拍摄的同一地物的三张图像上,若使用同样的三原色进行合成,可得到接近天然色的颜色,此方法称为真彩色合成。

3) 假彩色合成由于多波段摄影中,一副图像多不是三原色的波长范围内获得的,如采用人眼看不见的红外波段等,因此由这些图像所进行的彩色合成称假彩色合成。

《数字图像处理》实验报告

《数字图像处理》实验报告

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。

在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。

首先,我们进行了图像的读取和显示实验。

通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。

这为我们后续的实验奠定了基础。

同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。

这使我们能够更好地理解后续实验中的算法和操作。

接下来,我们进行了图像的灰度化实验。

灰度化是将彩色图像转换为灰度图像的过程。

在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。

通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。

随后,我们进行了图像的直方图均衡化实验。

直方图均衡化是一种用于增强图像对比度的方法。

在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。

通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。

在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。

滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。

在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。

通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。

此外,我们还进行了图像的边缘检测实验。

边缘检测是一种用于提取图像边缘信息的方法。

在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。

通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。

最后,我们进行了图像的压缩实验。

图像压缩是一种将图像数据进行压缩以减小文件大小的方法。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告⼆○⼀⼋~⼆○⼀九学年第⼀学期信息科学与⼯程学院课程设计报告书课程名称:数字图像处理班级:学号:姓名:指导教师:⼆○⼀⼋年⼗⼆⽉⼀、课程设计⽬的:1. 掌握读、写、显⽰图像的基本⽅法。

2. 掌握图像直⽅图的概念、计算⽅法以及直⽅图归⼀化、均衡化⽅法。

3. 掌握图像灰度变换的基本⽅法,理解灰度变换对图像外观的改善效果。

⼆、课程设计内容及要求:1. 读⼊⼀幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。

2. 完成灰度图像的直⽅图计算、直⽅图归⼀化、直⽅图均衡化等操作。

3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(⼆值化)等,分别使⽤不同参数观察灰度变换效果(对灰度直⽅图的影响)。

三、详细设计步骤:1、所使⽤的图像⽂件都保存在Matlab 安装⽬\toolbox\images\imdemos⼦⽬录下。

2、图像的读、写、显⽰操作。

运⽤Matlab 图像处理⼯具箱中的imread函数分别读⼊灰度图像pout.tif、⼆值图像blobs.png 和RGB 图像peppers.png,观察相应的图像矩阵,并运⽤imshow 函数显⽰相应图像。

3、对⼀个RGB 彩⾊图像peppers.png,分别抽取其R、G、B 三个分量层,并显⽰各层图像。

1、以灰度图像pout.tif 为例,运⽤灰度变换法实现图像增强。

2、运⽤Matlab 编程实现灰度直⽅图的统计以及直⽅图均衡化处理过程:(1)计算并绘制原始图像的灰度直⽅图;(2)根据离散累计分布函数,对原始灰度直⽅图进⾏均衡化处理,绘制均衡化后的灰度直⽅图;(3)⽣成均衡化处理后的新图像,显⽰并保存。

(4)⽐较原始图像和新图像的对⽐度。

(1)利⽤Matlab 函数IMNOISE(),在原图上分别叠加⾼斯噪声和椒盐噪声(2)实现均值滤波和中值滤波的功能,去除噪声;(3)调整窗⼝⼤⼩,采⽤对⽐均值滤波中值滤波的性能;1、以灰度图像rice.png 为例,实现Roberts 算⼦、Sobel 算⼦、Prewitt算⼦对其进⾏边缘检测,并实现根据梯度⽣成 5 种不同的增强图像。

实验五 彩色图像处理

实验五  彩色图像处理

实验五彩色图像处理一、实验目的使用MatLab 软件对图像进行彩色处理。

使学生通过实验熟悉使用MatLab软件进行图像彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。

二、实验要求要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩色图像进行直方图均衡,并能正确解释均衡处理后的结果;能够对单色图像进行伪彩色处理、利用多波长图像进行假彩色合成、进行单色图像的彩色变换。

三、实验内容与步骤(1) 彩色图像的分析调入并显示彩色图像flower1.tif ;拆分这幅图像,并分别显示其R,G,B分量;根据各个分量图像的情况讨论该彩色图像的亮度、色调等性质。

(2) 彩色图像的直方图均衡接内容(1);显示这幅图像的R,G,B分量的直方图,分别进行直方图均衡处理,并显示均衡后的直方图和直方图均衡处理后的各分量;将处理完毕的各个分量合成彩色图像并显示其结果;观察处理前后图像的彩色、亮度、色调等性质的变化。

(3) 假彩色处理调入并显示红色可见光的灰度图像vl_red.jpg、绿色可见光的灰度图像vl_green.jpg 和蓝色可见光的灰度图像vl_blue.jpg;以及近红外灰度图像infer_near.jpg和中红外灰度图像infer_mid.jpg;以图像vl_red.jpg为R;图像vl_green.jpg为G;图像vl_blue.jpg为B,将这三幅图像组合成可见光RGB彩色图像;分别以近红外图像infer_near.jpg和中红外图像infer_mid替换R分量,形成假彩色图像;观察处理的结果,注意不同波长红外线图像组成图像的不同结果(4) 伪彩色处理1:灰度切片处理调入并显示灰度图像head.jpg;利用MATLAB提供的函数对图像在8~256级的范围内进行切片处理,并使用hot模式和cool 模式进行彩色化;观察处理的结果。

(5) 彩色变换(选做)调入并显示灰度图像Lenna.jpg;使用不同相位的正弦函数作为变换函数,将灰度图像变换为RGB图像。

数字图像处理实验报告实验三

数字图像处理实验报告实验三
2.设计一个检测图3-2中边缘的程序,要求结果类似图3-3,并附原理说明
代码:
I=imread('lines.png');
F=rgb2gray(I);
subplot(2,2,1);
imshow(I);
title('原始图像');
thread=130/255;
subplot(2,2,2);
imhist(F);
图5-2 添上一层(漆)
3.开运算open:
4.闭close:
5.HMT(Hit-Miss Transform:击中——击不中变换)
条件严格的模板匹配
模板由两部分组成。 :物体, :背景。
图5-3 击不中变换示意图
性质:
(1) 时,
(2)
6.细化/粗化
(1)细化(Thin)
去掉满足匹配条件的点。
图5-4 细化示意图
se = strel('ball',5,5);
I2 = imerode(I,se);
imshow(I), title('Original')
figure, imshow(I2), title('Eroded')
Matlab用imopen函数实现图像开运算。用法为:
imopen(I,se);
I为图像源,se为结构元素
构造一个中心具有菱形结构的结构元素,R为跟中心点的距离
SE = strel('rectangle',MN)
构造一个矩形的结构元素,MN可写在[3 4],表示3行4列
SE = strel('square',W)
构造一个正方形的矩阵。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。

本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。

实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。

实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。

在Python中,我们可以使用OpenCV库来实现图像的读取和显示。

以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。

常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。

以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。

数字图像处理实验报告.doc

数字图像处理实验报告.doc

数字图像处理实验报告数字图像处理实验报告1一.实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1. 编程实现图像平移,要求平移后的图像大小不变;2. 编程实现图像的镜像;3. 编程实现图像的转置;4. 编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5. 编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架3.1实验所用编程环境Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Wet应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2实验处理的对象:256色的BMP(BIT MAP格式图像BMP(BIT MAP位图的文件结构:具体组成图:BITMAPFILEHEADER位图文件头(只用于BMP文件)bfType="BM" bfSize bfReserved1bfReserved2bfOffBitsbiSize biWidthbiHeight biPla nesbiBitCou ntbiCompressi onbiSizeimagebiXPelsPerMeterbiY PelsPerMeterbiClrUsedbiCirimporta nt单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEAD位图信息头Palette 调色板DIBPixels DIB 图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位,水平和垂直分辨率以每米像素数为单位),目标设备的级别,每个像素所需的位数,位图压缩类型(必须是0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图,用函数创建兼容DC用函数选择显示删除位图但以上方法的缺点是:1)显示速度慢;2)内存占用大;3)位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决);4)在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示:用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数,一般放在在析构函数中以上方法的优点是:1)显示速度快;2)内存占用少;3)缩放显示时图形失真小,4)在低颜色位数的设备上显示高颜色位数的图形图形时失真小;5)通过直接处理位图数据,可以制作简单动画3.4程序中用到的访问函数Win dows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice 函数:该函数可以直接在显示器或打印机上显示DIB.在显示时不进行缩放处理.2. StretchDIBits 函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits 函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI 位图.5. CreateDIBSection 函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw 函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits 的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW弋码连接到进程中.3.5图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.3实验步骤(1)对彩色图像的表达和显示* * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体rgbcube(10,0,10); %从侧面观察彩色立方rgbcube(10,10,10); %从对角线观察彩色立方体%* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif');figure,imshow(f); %f是RGB真彩图像%rgb图像转换成8色索引图像,不采用抖动方式[X1,map1]=rgb2ind(f,8,'nodither');figure,imshow(X1,map1);%采用抖动方式转换到8色索引图像[X2,map2]=rgb2ind(f,8,'dither');figure,imshow(X2,map2); %显示效果要好一些g=rgb2gray(f); %f转换为灰度图像g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像figure,imshow(g1);%显示抖动处理后的二值图像程序运行结果:彩色立方体原图不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像灰度图像抖动处理后的二值图像(2)彩色空间转换f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像%转换到NTSC彩色空间ntsc_image=rgb2ntsc(f);figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息%转换到HIS彩色空间hsi_image=rgb2hsi(f);figure,imshow(hsi_image(:,:,1)); %显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3)); %显示亮度信息程序运行结果:原图转换到NTSC彩色空间显示亮度信息显示色差信息显示色差信息转换到HIS彩色空间显示色差信息显示饱和度信显示亮度信息(3)彩色变换f=imread('D:\Picture\Fig0614(a)(Chalk Original).tif');G=ice('image',f);%打开ice窗口对图像进行调整%在窗口中执行以下操作:%a)得到图像的补色%b)拖动映射曲线,对图像显示效果进行修改%c)在颜色通道中选中某一颜色,然后对映射曲线进行修改程序运行结果(1):全彩色图片ICE窗口它的补色ICE窗口拖动映射曲线,图像的显示效果ICE窗口选择Red ICE窗口f2=imread('D:\Picture\ JLK Magenta.tif');figure,imshow(f2);%在CMYK彩色空间内打开图像g2=ice('image',f2,'space','CMYK');%f2的图像色彩偏红,拖动映射曲线,%调整映射参数,使图像的色彩看起来比较正常。

程序运行结果(2)原图在CMYK彩色空间内打开图像调整映射参数后ICE窗口(4)彩色空间滤波%* * * * * * * * * * * * * * * * * * * * 彩色图像平滑* * * * * * * * * * * * * * * * * * * * * * fc=imread('D:\Picture\Fig0604(a)(iris).tif');figure,imshow(fc);h=rgb2hsi(fc); %转换到HIS彩色空间H=h(:,:,1); %色度分量S=h(:,:,2); %饱和度分量I=h(:,:,3); %亮度分量w=fspecial('average',25); %25×25的方形平滑算子I_filtered=imfilter(I,w,'replicate'); %对亮度分量进行平滑操作H1=cat(3,H,S,I_filtered); %将H、S、I三个分量重新组合起来f=hsi2rgb(H1); %转换到RGB彩色空间f=min(f,1); %f的值控制在[0,1]之间figure,imshow(f); %彩色图像平滑处理%* * * **** * * * * * * * * * * * * 彩色图像锐化* * * * * * * * * * * * * * * * * * * * * * fb=imread(' D:\Picture\Fig0604(a)(iris).tif');lapmask=[1 1 1;1 -8 1;1 1 1]; %拉普拉斯算子g=imfilter(fb,lapmask,'replicate'); %拉普拉斯算子处理figure,imshow(g);%图像锐化后与原图像相减fen=imsubtract(fb,g);figure,imshow(fen); %显示差值图像程序运行结果:原图彩色图像平滑处理拉普拉斯算子处理锐化处理(5)彩色图像分割%* * * * * * * * * * * * * * * * * 彩色边缘检测* * * * * * * * * * * * close all;clear;clc;f=imread('iris.tif'); %f如图6-4所示%直接计算彩色边缘VG,并得到对单独彩色平面的二维梯度求和形成的梯度PPG [VG,A,PPG]=colorgrad(f);figure,imshow(VG,[ ]); %显示彩色梯度图像figure,imshow(A,[ ]); %显示彩色梯度对应的角度图像figure,imshow(PPG,[ ]); %显示分量梯度图像g=VG-PPG; %计算两种梯度方法得到的梯度之差figure,imshow(g,[ ]); %显示差值图像程序运行结果:彩色梯度图像彩色梯度对应的角度图像分量梯度图像两种梯度差值图像%* * * * * * * * * * * * * * * * * 彩色图像分割* * * * * * * * * * * * * * * * * * * * * * * * *f=imread('jupitermoon.tif');%f如图6-4所示mask=roipoly(f); %手工选定图中红色区域%取得选定区域图像的红色分量R=immultiply(mask,f(:,:,1));%取得选定区域图像的绿色分量G=immultiply(mask,f(:,:,2));%取得选定区域图像的蓝色分量B=immultiply(mask,f(:,:,3));g=cat(3,R,G,B); %取得选定区域的RGB图像figure,imshow(g); %显示取得选定区域[M,N,K]=size(g); %选定区域的大小I=reshape(g,M*N,3); %对g中的像素进行重排,按列序拉成一行idx=find(mask); %找到mask中的像素在重排后的图像g中位置I=double(I(idx,1:3)); %转换到double类型[C,m]=covmatrix(I); %计算协方差矩阵C主对角线上的元素,即方差%>>sd=sqrt(d)%求得这些元素的平方根,即均方差均方差%用欧式距离对图像进行彩色分割,阈值为25E25=colorseg('euclidean',f,25,m);E251=f;E251(E25==0)=0figure,imshow(E251,[]);%用马氏距离对图像进行彩色分割,阈值为25M25=colorseg('mahalanobis',f,25,m,C); figure , imshow(M25 , [ ]);程序运行结果:原图选定区域欧氏距离彩色分割马氏距离彩色分割6.4 思考题(1)请将图6-1所示的彩色图像转换到灰度图像,并根据灰度值对此灰度图像进行索引化,手工指定索引表中的RGB值,并把此索引图像显示出来。

程序代码如下%思路:把原图想转换为128位索引图close all;clear;clc;%将f从灰度图像转换为索引图像,x是索引图像;%map是索引矩阵,R,G,B的值都相等f=imread('D:\Picture\RGB_iris.tif');figure,imshow(f); %f是RGB图像f1=rgb2gray(f); %将f转换成灰度图像figure,imshow(f1);[x,map]=gray2ind(f1,128); %把灰度图像转化成128位的索引图figure,imshow(x);%将map中的值做下面改变则R,G,B的值不相等,产生彩色map(1,:)=0.5;map(: ,1)=0.5;map(2,:)=0.4;map(1,1)=0;figure,imshow(f1,map);程序运行结果:原RGB图像灰度图像索引图修改索引表后的图像(2)6.3节的(4)是将图像转换到HIS空间后再对亮度分量进行平滑操作,试直接对原图像的RGB三个分量分别进行平滑操作,并计算两种操作方法的图像差值。

程序代码如下:f=imread('D:\Picture\RGB_iris.tif');figure,imshow(f);%直接对原图像的RGB三个分量分别进行平滑操作H=f(:,:,1); %色度分量S=f(:,:,2); %饱和度分量I=f(:,:,3); %亮度分量w=fspecial('average',25); %25×25的方形平滑算子H_filtered=imfilter(H,w,'replicate'); %对色度分量进行平滑操作S_filtered=imfilter(S,w,'replicate'); %对饱和度分量进行平滑操作I_filtered=imfilter(I,w,'replicate'); %对亮度分量进行平滑操作%将H、S、I三个分量重新组合起来Ha=cat(3,H_filtered,S_filtered,I_filtered);Ha=im2double(Ha); %转化成double类型figure,imshow(Ha);%转换到HIS彩色空间h=rgb2hsi(f); %转换到HIS彩色空间H=h(:,:,1); %色度分量S=h(:,:,2); %饱和度分量I=h(:,:,3); %亮度分量w=fspecial('average',25); %25×25的方形平滑算子I_filtered=imfilter(I,w,'replicate'); %对亮度分量进行平滑操作%将H、S、I三个分量重新组合起来H1=cat(3,H,S,I_filtered);fb=hsi2rgb(H1); %转换到RGB彩色空间fb=min(fb,1); %f的值控制在[0,1]之间figure,imshow(fb);%彩色图像平滑处理fen=imsubtract(Ha,fb);%计算两中方式处理后图像的差值figure,imshow(fen);程序运行结果:原图直接对RGB三分量进行平滑操作转换到HIS空间对亮度进行平滑操作差值图像试验中的问题和心得体会:本次实验是彩色图像处理。

相关文档
最新文档