彩色图像分割程序设计RGB模型.docx
- 文档编号:3307737
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:12
- 大小:183.17KB
彩色图像分割程序设计RGB模型.docx
《彩色图像分割程序设计RGB模型.docx》由会员分享,可在线阅读,更多相关《彩色图像分割程序设计RGB模型.docx(12页珍藏版)》请在冰豆网上搜索。
彩色图像分割程序设计RGB模型
摘要
Matlab是当今最优秀的科技应用软件之一,它一强大的科学计算与可视化功能,简单易用,开放式可扩展环境,特别是所附带的30多种面向不同领域工具箱支持,使得它在许多科学领域中成为计算机辅助设计与分析,算法研究和应用开发的基本工具盒首选平台在图像处理中,Matlab也得到了广泛的应用,例如图像变换,设计FIR滤波器,图像增强,四叉树分解,边缘检测,小波分析等等。
不同的颜色空间在描述图像的颜色时侧重点不同。
如RGB(红、绿、蓝三原色)颜色空间适用于彩色监视器和彩色摄象机,HSI(色调、饱和度、亮度)更符合人描述和解释颜色的方式(或称为HSV,色调、饱和度、亮度),CMY(青、深红、黄)、CMYK(青、深红、黄、黑)主要针对彩色打印机、复印机等,YIQ(亮度、色差、色差)是用于NTSC规定的电视系统格式,YUV(亮度、色差、色差)是用于PAL规定的电视系统格式,YCbCr(亮度单一要素、蓝色与参考值的差值、红色与参考值的差值)在数字影像中广泛应用。
彩色图像的处理有时需要将图像数据在不同的颜色空间中表示,因此,图像的颜色空间之间的转换成为一项有意义的工作。
其中RGB在颜色空间转换中其关键作用,是各个空间转换的桥梁。
Matlab中的颜色空间转换只涉及到了RGB、HSV、YCbCr、YIQ等,没有包含lαβ和其它颜色空间的转换。
关键字:
Matlab;图像处理;RGB
1设计任务及目的
1.1设计任务
对给定的彩色图像的颜色,使用RGB颜色模型,来对其进处理。
并且设计MATLAB程序,使其能完成输入图像便自动使用RGB模型来进行图像分割。
1.2设计目的
(1)综合运用相关课程中所学到的理论知识去独立完成设计课题。
(2)通过查阅手册和相关文献资料,培养独立分析和解决问题的能力。
(3)进一步熟悉Matlab运用和图像处理的知识,加深对专业知识和理论知识学习的认识和理解。
(4)学会撰写课程设计的总结报告。
(5)培养严肃认真的工作作风和严谨的科学态度。
2图像处理简介
数字图像处理,通俗地讲是指应用计算机以及数字设备对图像进行加工处理的技术。
2.1数字图像处理发展概述
20世纪20年代,图像处理技术首次应用于改善伦敦到纽约之间的海底电缆传送图片的质量。
1964年,美国喷气推动实验室用计算机成功地对4000多张月球照片进行处理。
70年代中期,随着离散数学理论的创立和完善,数字图像处理技术得到了迅猛的发展,理论和方法不断完善。
90年代,随着个人计算机进入家庭,硬件价格不断下降,数字世界逐渐进入人们的生活。
2.2图像处理技术
图像处理技术包括:
空域处理方法和变换域处理方法。
(1)图像信息的获取
为了在计算机上进行图像处理,必须把作为处理对象的模拟图像转换成数字图像信息。
图像信息的获取,一般包括图像的摄取、转换及数字化等几个步骤。
该部分主要由处理系统硬件实现。
(2)图像信息的存储于交换
由于数字图像信息量大,且在处理过程中必须对数据进行存储和交换,为了解决大数据量及交换与传输时间的矛盾,通常除采用大容量机内存存储器进行并行传送,直接存储访问外,还必须采用外部磁盘、光盘及磁带存储方式,从而达到提高处理的目的。
该部分组要功能也由硬件完成。
(3)数字图像处理
数字图像处理,即把在空间上离散的,在幅度上量化分层的数字图像,在经过一些特定数理模式的加工处理,以达到有利于人眼视觉或某种接收系统所需要的图像过程。
(4)数字图像通讯
80年代以来,由于计算机技术和超大规模集成电路技术的巨大发展,推动了通讯技术(包括语言、数据、图像)的飞速发展。
因为图像通讯具有形象直观、可靠、高效率等一系列优点,尤其是数字图像通讯比模拟图像通讯更具抗干扰性,便于压缩编码处理和易于加密,因此在图像通讯工程中数字处理技术获得广泛应用。
(5)图像的输出和显示
数字图像处理的最终目的是为了提供便于人眼或接收系统解释和社别图像,因此图像的输出和显示很重要。
一般图像输出的方式可分为硬拷贝,诸如照相、打印、扫描鼓等,还有所谓的软拷贝,诸如CRT监视器及各种新型的平板监视器等。
2.3图像处理的内容
图像处理的内容包括:
图像变换,图像增强,图像编码与压缩,图像复原,图像重建,图像识别以及图像理解。
(1)图像数字化
图像数字化即图像采样和量化,是指把连续的图像信号变为离散的数字信号,以适应计算机的处理。
(2)图像编码压缩
把数字化的图像数据按一定规则进行排列或运算过程,称为图像编码。
利用图像本身的内在特性,通过某种特殊的编码方式,达到减少原图像数据时空占用量的处理叫做图像压缩编码。
(3)图像变换
一般指利用正交变换的性质和特点,将图像转换到变换域中进行处理,并且大部分变换都有快速算法。
(4)图像增强
图像增强的目的是突出图像中所感兴趣的部分,如强化图像的高频分量,可使图像中物体轮廓清晰,细节明显。
(5)图像复原
图像复原是尽可能恢复图像的本来面貌,是对图像整体而言,而且在复原处理时,往往必须追求降质原因,以便“对症下药”,而增强往往是局部。
(6)图像分割
将图像中包含的物体,按其灰度或几何特性分割,并进行处理分析,从中提取有效分量、数据等有用信息。
这是进一步进行图像处理如模式识别、机器视觉等技术的基础。
(7)图像分类
简单地说就是在图像分割的基础上,进行我体的判决分类。
(8)图像重建
它是对一些三维物体,应用x射线、超声波等物理方法,取得物体内部结构数据,再将这些数据进行运算处理而构成物体内部某些部位的图像。
目前图像重建最成功的例子是CT技术(计算机断层扫描成像技术)、彩色超声波等。
3RGB模型简介
RGB颜色空间是最基本的色彩空间主要是面向硬件设备的,它是与人类视觉系统有着密切关系的空间模型,它通常用于显示器,打印机和其他设备,是最常见的和最常用的色彩空间。
通常,RGB空间用数据立方体模型来表示,如图3.1所示。
在图中,R,G,B这三个分量分别位于三角上,绿色,红色和黄色在其他三个角落,黑色在原点,白色的角度离原点最远的。
在这个空间中,灰度等级是沿着黑白两点之间的连线分布。
图3.1RGB色彩空间示意图
比色法则:
1、通过R,G,B三种颜色可以产生任意颜色,这三种颜色组合后形成的颜色也是唯一的;2、如果两种颜色的三个分量相等,则这两种颜色是相同的,这三个分量乘以或除以相同的数得到的颜色依旧是一样的;3、各种颜色组成的混合色的亮度等于其中每个颜色亮度的总和。
RGB色彩空间适用于彩色显示,同时,R,G,B这三个分量有很高的相关性,如果强度发生变化,则这三个颜色分量也会发生相应的变化。
此外,在RGB空间不能用距离来衡量两个颜色相似性。
4MATLAB简介
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
5设计方案
5.1传统阈值分割算法分析
对于彩色图像,传统的阈值分割算法是先将彩色图像转换成灰度图像,再取一个灰度值作为阈值,逐个像素进行处理,若此像素灰度值小于等于阈值的为前景,置为黑色,若大于阈值的为背景,置为白色。
RGB三原色到灰度的转换公式为:
Gray=0.30*R+0.59*G+0.11*B(5.1)
在灰度值一定的情况下,此公式是三元一次方程,在笛卡尔坐标系中对应着一个平面。
设灰度值取为60,则方程为:
0.30x+0.59y+0.11z=60(5.2)
对应的空间平面在RGB颜色空间中的位置如图5.1所示。
.
图5.1灰度转换与RGB颜色空间模型
对照RGB颜色空间模型看,位于此平面上的所有点,经灰度转换后,其灰度值都是60。
如果以灰度值60为阈值对彩色图像进行分割,则图像中所有颜色值位于此阈值分割平面下方的,其颜色经灰度转换后都将小于60,因此都将判定为前景;同样的,图像中所有颜色值位于此阈值分割平面上方的,将被判定为背景。
相应的判定准则是:
Color={
(5.3)
考察当三原色当中的蓝色为0时的情况,如图5.2所示
图5.2蓝色为0时的阈值分割情况
对应的灰度转换方程为:
0.30x+0.59y=60(5.3)
此平面上的点,以阈值分割线为界,上方的将被判定为背景,下方的将被判定为前景。
当红色或绿色为0时,也有相同的情况。
5.2基于RGB颜色空间的阈值分割算法
考察蓝色为0时的颜色分布情况,如图5.3所示。
图5.3蓝色为0时的颜色分布情况
图5.3中,左下角为黑色,左上角为红色,右上角为黄色,右下角为绿色。
观察图4中的颜色分布情况,可以发现,接近黑色的颜色分布在左下角近似正方形的部分,而不是如图5.3中的三角形部分中,也就是说,就红、绿两原色组合成的色彩而言,将彩色图形转换为灰度图形后,有一部分色彩在彩色情况下视觉上明显不是黑色,但转换为灰度颜色后视觉上会感觉比较接近黑色。
在由红、蓝及蓝、绿甚至红、蓝、绿三原色组合成的色彩中,也都存在着同样的情况。
由于灰度转换造成的这种误差,在对图像进行阈值分割时会形成误判。
对于彩色图像,由于传统的阈值分割算法是对图像颜色进行灰度转换后进行分割,还原到彩色空间中相当于是取了图2中靠近坐标原点的一个四面体所包含的颜色为前景。
此四面体中远离原点的四个角部分的色彩已经较大地偏离了黑色,而转换为灰度颜色后这种偏离将被掩盖,从而造成对图像进行阈值分割时的不准确。
基于以上分析,提出新的对彩色图像进行阈值分割的思路:
在RGB色彩空间中取靠近原点的一个立方体,其中所包含的颜色为前景,其余的颜色为背景。
相应的判定准则是:
Color={
(5.4)
6Matlab编程实现
用Matlab来分割彩色图像的过程如下:
(1)获取图像的RGB颜色信息。
通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径;
(2)RGB彩色空间到lab彩色空间的转换。
通过函数makecform()和applycform()来实现;
(3)对ab分量进行Kmean聚类。
调用函数kmeans()来实现;
(4)显示分割后的各个区域。
用三副图像分别来显示各个分割目标,背景用黑色表示
流程如图6.1所示:
图6.1基于RGB模型的彩色图像分割流程图
7程序设计
clear;
clc;
file_name=input('请输入图像文件路径:
','s');
I_rgb=imread(file_name);%读取文件数据
figure();
subplot(2,3,1);
imshow(I_rgb);%显示原图
title('原始图像');%将彩色图像从RGB转化到lab彩色空间
C=makecform('srgb2lab');%设置转换格式
I_lab=applycform(I_rgb,C);%进行K-mean聚类将图像分割成3个区域
ab=double(I_lab(:
:
2:
3));%取出lab空间的a分量和b分量
nrows=size(ab,1);
ncols=size(ab,2);
ab=reshape(ab,nrows*ncols,2);
nColors=3;%分割的区域个数为3
[cluster_idxcluster_center]=kmeans(ab,nColors,'distance','sqEuclidean',
'Replicates',3);%重复聚类3次
pixel_labels=reshape(cluster_idxcluster_center,nrows,ncols);
subplot(2,3,2);
imshow(pixel_labels,[]),
title('聚类结果');%显示分割后的各个区域
segmented_images=cell(1,3);
rgb_label=repmat(pixel_labels,[113]);
fork=1:
nColors
color=I_rgb;
color(rgb_label~=k)=0;
segmented_images{k}=color;
end
subplot(2,3,3);
imshow(segmented_images{1}),
title('分割结果——区域1');
subplot(2,3,4);
imshow(segmented_images{2}),
title('分割结果——区域2');
subplot(2,3,5);
imshow(segmented_images{3}),
title('分割结果——区域3');
8仿真结果与分析
8.1仿真结果
(1)获取图像的RGB颜色信息。
通过与用户的交互操作来提示用户输入待处理的彩色图像的文件路径原始图片,得到图8.1:
图8.1原始图像
(2)RGB彩色空间到lab彩色空间的转换。
通过函数makecform()和applycform()来实现;再调用函数kmeans()对ab分量进行Kmean聚类,得到图8.2:
图8.2聚类结果
(3)显示分割后的各个区域。
用三副图像分别来显示各个分割目标,背景用黑色表示,得到如下8.3;8.4以及8.5的三个图像:
分割结果——区域1:
图8.3分割结果——区域1
分割结果——区域2:
图8.4分割结果——区域2
分割结果——区域3:
图8.5分割结果——区域3
8.2结果分析
图8.1是预处理的原始图像;图8.2则是通过函数makecform()和applycform(),将RGB彩色空间转换到lab彩色空间,再调用函数kmeans(),对ab分量进行Kmean聚类得到的结果。
图8.3,图8.4,图8.5则是显示分割后的各个区域。
用三副图像分别来显示各个分割目标,背景用黑色表示
结论
经过将近两周的设计,撰写,基于RGB模型的彩色图像程序设计通过Matlab得以实现。
完成本次课设共经历了三个阶段。
第一阶段是查阅资料。
在拿到题目后,通过网上搜索,以及图书馆借阅相关书籍,再结合所学的相关知识,确定基本思路;
第二阶段是实际操作。
通过对网上下载的一些相关的文档中的有用的部分进行提取和修改,并且加入自己的理解,通过Matlab仿真,得以实现;
最后一阶段是撰写课程设计报告。
总结:
本次课程设计中,主要任务是实现基于RGB模型的彩色图像分割的程序设计,在这个过程中,主要使用到imread获取图像的RGB颜色信息。
然后通过函数makecform()和applycform()来实现RGB彩色空间到lab彩色空间的转换。
再调用函数kmeans(),来实现对ab分量进行Kmean聚类。
最后,通过subplot()函数显示分割后的各个区域。
进而实现基于RGB模型的彩色图像的分割。
参考文献
[1]秦襄培.MATLAB图像处理与页面编程[M].北京.电子工业出版社,2009.
[2]万毅.指纹图像分割技术算法研究[D].吉林:
吉林大学,2011.
[3]徐琳俊.数字图像分割算法研究[D].江苏:
江苏科技大学,2011.
[4]钱智明.图像分割方法研究[D].长沙:
国防科技大学,2010.
[5]冯艳平,王徽.基于阈值分割和边缘检测的枪支THz图像识别[J].红外,2011.
[6]肖辉.彩色图像分割[J].测绘科技情报,2004.
[7]罗志宏,冯国灿.一种新变方法在图像分割中的应用[J].计算机科学,2011.
[8]李强.图像分割中的阈值法研究[J].铜仁职业技术学院学报(自然科学版),2008.
[9]王丽.相似背景下的苹果图像分割方法仿真研究[J].计算机仿真,2011.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 彩色 图像 分割 程序设计 RGB 模型