彩色图像灰度化
-
数字图像处理课程设计报告
摘
要
图像处理是一门很有价值的学科,在科学技术不断发展的今天
它的技
术已趋于成熟。
同时图像之间的处理
,
在实际应用中也显的越来越重要。
本
< br>课程设计的主要任务是完成数字图像处理中关于彩色图像灰度化的仿真,
观察仿真
结果,
并进行结果分析。
本课程设计的系统开发平台为
MATLAB
,
程序运行平台为
Windows98/2000/XP
。
本次课程设计
通过加权平均法、
平均
值法和最大值法这三种方法,实现了彩色
图像的灰度化处理,并对它们进
行了对比分析。最后,完成了彩色图像灰度化的仿真。<
/p>
关键词
:
MATLAB7.0
;彩色图像;灰度化
I
数字图像处理课程设计报告
目
录
1
设计目
的
………………………………………………………………
.
p>
…
.
…
.
1
2
设计方案
……………………………………………………………………
...
1
3
相关知识
………
...
……………………………………………………………
2
4
详细设计
……………………………………………………………………
...
3
5
源代码及分析
………
..
……………
…………………………………………
.
4
6
功能仿真图及分析
……………………………………
..
……………
………
.
6
7
结束语
…
…………………………………………………………………
.....
11
8
参考文献
………………………………………………………………
..
…<
/p>
...
12
附录
彩页图像
………………………………………………………………
.
13
II
数字图像处理课程设计报告
1
设计目的
1
、通过
MATLAB
仿真软件,实现彩色图像的灰度化处理;<
/p>
2
、学习并熟悉
MATLAB
编程环境的一般操作和运用;
3
、在加深对数字图像处理课本知识理解的基础上,学会运用已学的知
识设计彩色图像灰度化的处理方法并对结果进行分析。
2
设计方案
将彩色图像转化成为灰度图
像的过程称为图像的灰度化处理。彩色图
像中的每个像素的颜色有
R
、
G
、
B
三个分量决定,而每个分量有
255
个
中
值可取,这样一个像素点可以有
1600
多万(
255*255*255
)的颜色的变化
范围。而灰度图像是
R
、
G
、
B
三个分量相同的一种特殊的彩色
图像,其中
一个像素点的变化范围为
255
种,所以在数字图像处理中一般先将各种格
式的图像转变成灰度图像以使后续的图像
的计算量变得少一些。灰度图像
的描述与彩色图像一样仍然反映了整幅图像的整体和局部
的色度和亮度等
级的分布和特征。
在
RGB
模型中,如果
R=G=B
时,则彩色表示一种灰度颜色,其中
R=G=B
的值叫做灰度值。因此,灰度图像每个像素只需一个字节存放灰度
值(又称强度值、亮
度值)
,灰度范围为
0-255
。图像
的灰度化处理,一般
有以下三种设计方案:
1
、加权平均法
根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由
于人眼对绿色的
敏感最高,对蓝色敏感最低,因此,对
RGB
三分量进行加
p>
权平均能得到较合理的灰度图像。
2
、平均值法
求出每个像素点的
R
、
G
、
B
三个分量的平均值,然后将彩色图像中的
p>
这个平均值赋予给这个像素的三个分量。
3
、最大值法
1
数字图像处理课程设计报告
将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。
<
/p>
本课程设计分别采用了以上三种设计方案,即加权平均法、平均值法
和最大值法。在
MA
TLAB
中,通
过编程实现了彩色图像的灰度化处理。
3
相关知识
1
、设计平台
本次设计采用的平台是
MATLAB
7.0
。
MATLAB
编程语言被业界
称为
第四代计算机语言,它允许按照数学推导的习惯编写程序。
MATLAB7.0
的
工作环境包括当前工作窗口、命令历史记
录窗口、命令控制窗口、图形处
理窗口、当前路径选择菜单、程序编辑器、变量查看器、
模型编辑器、
GUI
编辑器以及丰富的函数库和
MATLAB
附带的大量
M
文
件。
MATLAB
是由美国
Math
p>
Works
公司生产的一个为科学和工程计算专
门设计的交互式大型软件,是一个可以完成各种计算和数据处理的、可视
化的、强大
的计算工具。它集图示和精确计算于一身,在应用数学、物理、
化工、机电工程、医药、
金融和其他需要进行复杂计算的领域得到了广泛
应用。
MATL
AB
作为一种科学计算的高级语言之所以受欢迎,就是因为它
有
丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,
而无需再去编写
大量繁琐的程序代码,从而减轻了编程人员的工作负担,
被称为第四代编程语言。
在
MATLAB
设
计环境中,
图像处理工具箱提供一套全方位的参照标准
算法和图
形工具,用于进行图像处理、分析、可视化和算法开发。可用其
对有噪声图像或退化图像
进行去噪声或还原、增强图像以获得更高清晰度、
提取特征、分析形状和纹理以及对两个
图像进行匹配。工具箱中大部分函
数均以开放式
MATLAB
语言编写。这意味着可以检查算法、修改源代码
和创建自定义函数。图像处理工具箱在生物测定学、遥感、监控、基因表
达、显微镜技术、半导体测试、图像传感器设计、颜色科学及材料科学等
领域为
工程师和科学家提供支持。它也促进了图像处理技术的教学。
2
、发展前景
在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。
2
数字图像处理课程设计报告
p>
这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个
采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰
度图像与黑
白图像不同,在计算机图像领域中黑白图像只有黑色与白色两
种颜色;灰度图像在黑色与
白色之间还有许多级的颜色深度。但是,在数
字图像领域之外,
“
黑白图像
”
也表示
< br>“
灰度图像
”
,
例如灰度的照片通常叫做
“
黑白照片
< br>”
。
在一些关于数字图像的文章中单色图像等同于灰度图
像,
在另
外一些文章中又等同于黑白图像。
彩色图像的灰度化技术在现代科技中应用越来越广泛
,
例如人脸目标
的检测与匹配以及运动物体目标的监测等等
,
在系统预处理阶段
,
< br>都要把
采集来的彩色图像进行灰度化处理
,
这样既可以提高后续算法速度
,
而且
可以提高系统综合应用实效
, <
/p>
达到更为理想的要求。
因此研究图像灰度化技
术具有重要意义。
4
详细设计
本设计采用的三种方法,都
实现了对彩色图像的灰度化处理。下面分
别对其作具体分析如下:
方法一:加权平均法
根据重要性
及其它指标,将
R
、
G
、
B
三个分量以不同的权值进行加权
< br>平均。
由于人眼对绿色的敏感度最高,
对蓝色敏感度最低
。
因此,
在
MATLAB
中我们可以按下式系统函数(
4-1
)
,对
RGB
三分量进行加权平均能得到较
合理的灰度图像。
f(i,j)=0.30R(i,j)+0.59G(i,j
)+0.11B(i,j))
(
4-1
)
方法二:平均值法
将彩色图像中的<
/p>
R
、
G
、
B
三个分量的亮度求简单的平均值,将得到均
值作为灰度值输出而得到灰度图。其表达式见下式(
4-2
)<
/p>
:
f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3
(
4-2
)
方法三:最大值法
将彩色图像中的<
/p>
R
、
G
、
B
三个分量中亮度的最大值作为灰度图的灰度
值。其表达式见下式(
4-3
)
:
p>
f(i,j)=max(R(i,j),G(i,j),B(i,j))
(
4-3
)
3
数字图像处理课程设计报告
5
源代码及分析
1
、源代码
首先,打开
MATLAB
软件,新建
M
文件。
M
文件是包括
< br>MATLAB
代
码的文件。
然后,进行代码编写。本次课程设计的源代码如下:
MyYuanLaiPic =
imread('F:/'); %
读取
RGB
格式的图像
MyFirstGrayPic =
rgb2gray(MyYuanLaiPic); %
用已有的函数进行
RGB
到灰
%
度图像的转换
[rows , cols , colors] =
size(MyYuanLaiPic);
%
得到原来图像的矩阵的参数
SecGrayPic
=
zeros(rows,cols);
%
用得到的参数创建一个全零的矩阵,这个
矩
%
阵用来存储用下面的方法产生的灰度图像
SecGrayPic = uint8(SecGrayPic); %
将创建的全零矩阵转化为
uint8
格式,
因
%
为用上面的语句创建之后图像是
double
型的
ThirdGrayPic=zeros(rows,cols);
ThirdGrayPic=uint8(ThirdGrayPic);
for i = 1:rows
for j = 1:cols
sum1 = 0;
sum2 = 0;
for k =
1:colors
sum1=sum1+MyYuanLaiPic(
i,j,k
)/3;
%
用均值法进行
RGB
到
%
灰度图像的转换
sum2=sum2+max(MyYuanLaiPic(
i,j,k
));%
用
最
大
值
法
< br>进
行
%RGB
到灰度图像转
p>
换
end
SecGrayPic(i,j) = sum1;
%
将得到的加权平均值作为对应像素点
%
的灰度值
4
数字图像处理课程设计报告
Thi
rdGrayPic(i,j)=sum2;%
将得到的简单平均值作为对应像素点
p>
%
的灰度值
end
end
imwrite(SecGrayPic
,'F:/','bmp');
%
将
转换后图像以
bmp
格式写入文
件
p>
%
imwrite(ThirdGrayPic,'F:/','bmp');
%
将转换后图像以
bmp
格式写入文
件
%
figure(1); %
显示第
1<
/p>
幅图像
imshow(MyYuanLaiPic);
%
显示原来的
RGB
图像
figure(2); %
显示第<
/p>
2
幅图像
imshow(MyFirstGrayPic);
%
显示经过系统函数运算过的灰度图像
figure(3); %
显示第
3<
/p>
幅图像
imshow(SecGrayPic);
%
显示均值法转化之后的灰度图像
figure(4); %
显示第
4<
/p>
幅图像
imshow(ThirdGrayPic);
%
显示最大值法转化之后的灰度图像
2
、代码分析
该程序采用三种方法实现彩色图像的灰度化。
程序首先读取一
RGB
格
式的图象
,
< br>然后调用已有的函数
rgb2gray()
来实现彩色图
像灰度化,
此为方法
一;继而,调用
s
ize
函数读取原图像图像的尺寸,并以该尺寸构建一个全
零矩
阵来存储用下面的方法产生的灰度图像。由于在此之前的语句创建之
后图像为双精度型,
因而我们采用
uint8
()将其转化成无符号整型。然后
对原图像中的像素逐点处理,
首先采用的是均值法,
即将每个像素点上的
R
p>
,
G
,B
分量取其
平均,
将处理后均值作为该像素点的灰度值输出,
对应代码中<
/p>
MyYuanLaiPic(
i,j,k )/3
语句,在对所有像素点处理完毕后即可实现彩色图
< br>像的灰度化处理,此为方法二;最后我还采用了取最大值法,即调用
max
()函数读取像素点上
RGB
分量中的最大值
作为该点灰度值输出,从而实
现彩色图像的灰度化处理。
5
数字图像处理课程设计报告
6
功能仿真图及分析
运行程序代码,可
得到如下运行结果,对应如上三种方法,可分别得
到如图
6-1
,
6-2
和
6
-3
。
(原彩色图见附录)
图
6-1
采用加权平均法的灰度图
图
6-2
采用均值法的灰度图
6