基于MATLAB的彩色图像灰度化处理

合集下载

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法

利用Matlab进行图像处理的常用方法概述:图像处理是数字信号处理的一个重要分支,也是计算机视觉领域的核心内容之一。

随着计算机技术的不断发展,利用Matlab进行图像处理的方法变得越来越重要。

本文将介绍一些常用的Matlab图像处理方法,包括图像的读取与显示、图像的预处理、图像的滤波处理、基本的图像增强方法以及图像的分割与检测等。

一、图像的读取与显示在Matlab中,可以使用imread函数直接读取图像。

通过指定图像的路径,我们可以将图像读取为一个矩阵,并且可以选择性地将其转换为灰度图像或彩色图像。

对于灰度图像,可以使用imshow函数将其显示出来,也可以使用imwrite函数将其保存为指定格式的图像文件。

对于彩色图像,可以使用imshow函数直接显示,也可以使用imwrite函数保存为指定格式的图像文件。

此外,还可以使用impixel函数获取图像中指定像素点的RGB值。

二、图像的预处理图像的预处理是指在进一步处理之前对图像进行调整和修复以消除图像中的噪声和不良的影响。

常用的图像预处理方法包括图像的平滑处理、图像增强和图像修复等。

1. 图像平滑处理:常用的图像平滑方法有均值滤波、中值滤波和高斯滤波等。

其中,均值滤波将每个像素点的值替换为其周围像素点的平均值,中值滤波将每个像素点的值替换为其周围像素点的中值,高斯滤波则通过加权平均的方式平滑图像。

2. 图像增强:图像增强是指通过一些方法提高图像的质量和信息内容。

常用的图像增强方法包括直方图均衡化、对比度拉伸和锐化等。

直方图均衡化通过调整图像的灰度分布,以提高图像的对比度和细节。

对比度拉伸是通过将图像的像素值线性拉伸到整个灰度范围内,以增强图像的对比度。

锐化则是通过增强图像的边缘和细节,使图像更加清晰。

三、图像的滤波处理图像的滤波处理是指通过对图像进行一系列滤波操作,来提取图像中的特征和信息。

常用的图像滤波方法包括模板滤波、频域滤波和小波变换等。

1. 模板滤波:模板滤波是基于局部像素邻域的滤波方法,通过定义一个滤波模板,将其与图像进行卷积操作,从而实现图像的滤波。

MATLAB图像处理之灰度图像

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、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;(1)、显示一副真彩RGB图像代码:I=imread('mikasa.jpg');>>imshow(I);效果:(2)、RGB转灰度图像代码:graycat=rgb2gray(I);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(graycat);效果:(3)、RGB转索引图像代码:[indcat,map]=rgb2ind(I,0.7);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(indcat,map);效果:(4)、索引图像转RGB代码:I1=ind2rgb(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(I1);效果:(5)、索引转灰度图像代码:i2gcat=ind2gray(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2gcat);效果:(6)、灰度转索引图像代码:[g2icat,map]=gray2ind(graycat,64);>>subplot(1,2,1);>>subimage(graycat);>>subimage(g2icat,map);效果:(7)、RGB转二值图像代码:r2bwcat=im2bw(I,0.5);>>subplot(1,2,1);>>subimage(I);>>subplot(1,2,2);>>subimage(r2bwcat);效果:(8)灰度转二值图像代码:g2bwcat=im2bw(graycat,0.5); subplot(1,2,1);>>subimage(graycat);>>subplot(1,2,2);>>subimage(g2bwcat);效果:(9)、索引转二值图像代码:>> i2bwcat=im2bw(indcat,map,0.7);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2bwcat);效果:2、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。

[数字图像处理](一)彩色图像转灰度图像的三种方式与效果分析

[数字图像处理](一)彩色图像转灰度图像的三种方式与效果分析

[数字图像处理](⼀)彩⾊图像转灰度图像的三种⽅式与效果分析图像处理(⼀)彩⾊图⽚转灰度图⽚三种实现⽅式最⼤值法imMax=max(im(i,j,1),im(i,j,2),im(i,j,3))平均法imEva=im(i,j,1)3+im(i,j,2)3+im(i,j,3)3加权平均值法imKeyEva=0.2989×im(i,j,1)+0.5870×im(i,j,2)+0.1140×im(i,j,3)matlba实现clc;close all;clear all;% 相对路径读⼊图⽚(和代码在同⼀⽂件夹下)im = imread('p2.jpg');%---查看图⽚,检测是否成功读⼊% 对显⽰的图⽚进⾏排版subplot(2,3,4);imshow(im);% 对图⽚进⾏命名title('原图');[col,row,color] = size(im);%col为图⽚的⾏数,row为图⽚的列数,color对于彩⾊图⽚⼀般为3,每层对应RGB %利⽤matlab⾃带的函数进⾏ rgb_to_gray;im_matlab = rgb2gray(im);subplot(2,3,1);imshow(im_matlab);title('matlab⾃带rgb2gray');%--------------------------------------------------------%---⽤最⼤值法% 创建⼀个全为1的矩阵,长宽等同于原图的im_max = ones(col,row);for i = 1:1:colfor j = 1:1:rowim_max(i,j) = max( im(i,j,:) );endend% 将矩阵变为8byte⽆符号整型变量(不然⽆法显⽰图⽚)% 最好在计算操作结束后再变化,不然会有精度问题!!im_max = uint8(im_max);subplot(2,3,2);imshow(im_max);title('最⼤值法');%--------------------------------------------------------% 平均值法im_eva = ones(col,row);for i = 1:1:colfor j = 1:1:rowim_eva(i,j) = im(i,j,1)/3 + im(i,j,2)/3 + im(i,j,3)/3 ;% 两种的结果其实⼀样,但是如果先转换为uint8就会出现精度问题%sum1 = im(i,j,1)/3 + im(i,j,2)/3 + im(i,j,3)/3%sum2 = ( im(i,j,1) + im(i,j,2)+ im(i,j,3) )/3;%fprintf( " %.4f %.4f \n",sum1 ,sum2 ) ;endendim_eva = uint8(im_max);subplot(2,3,3);imshow(im_eva);title('平均值法');%--------------------------------------------------------% 加权平均法(rgb2gray所使⽤的权值)im_keyeva = ones(col,row);% 加权算法先转换为uint8计算效果更好im_keyeva = uint8(im_max);for i = 1:1:colfor j = 1:1:rowim_keyeva(i,j) = 0.2989*im(i,j,1) + 0.5870*im(i,j,2) + 0.1140*im(i,j,3) ;endendsubplot(2,3,5);imshow(im_keyeva);title('加权平均法');Processing math: 100%附matlab——rgb2gray源码function I = rgb2gray(X)%RGB2GRAY Convert RGB image or colormap to grayscale.% RGB2GRAY converts RGB images to grayscale by eliminating the% hue and saturation information while retaining the% luminance.%% I = RGB2GRAY(RGB) converts the truecolor image RGB to the% grayscale intensity image I.%% NEWMAP = RGB2GRAY(MAP) returns a grayscale colormap% equivalent to MAP.%% Class Support% -------------% If the input is an RGB image, it can be of any numeric type. The output% image I has the same class as the input image. If the input is a% colormap, the input and output colormaps are both of class double.%% Notes% -----% RGB2GRAY converts RGB values to grayscale values by forming a weighted % sum of the R, G, and B components:%% 0.2989 * R + 0.5870 * G + 0.1140 * B%% The coefficients used to calculate grayscale values in RGB2GRAY are% identical to those used to calculate luminance (E'y) in% Rec.ITU-R BT.601-7 after rounding to 3 decimal places.%% Rec.ITU-R BT.601-7 calculates E'y using the following formula:%% 0.299 * R + 0.587 * G + 0.114 * B%% Example% -------% I = imread('example.tif');%% J = rgb2gray(I);% figure, imshow(I), figure, imshow(J);%% indImage = load('clown');% gmap = rgb2gray(indImage.map);% figure, imshow(indImage.X,indImage.map), figure, imshow(indImage.X,gmap);%% See also RGB2IND, RGB2LIGHTNESS.% Copyright 1992-2020 The MathWorks, Inc.narginchk(1,1);isRGB = parse_inputs(X);if isRGBI = matlab.images.internal.rgb2gray(X);else% Color map% Calculate transformation matrixT = inv([1.0 0.956 0.621; 1.0 -0.272 -0.647; 1.0 -1.106 1.703]);coef = T(1,:);I = X * coef';I = min(max(I,0),1);I = repmat(I, [1 3]);end%--------------------------------------------------------------------------function is3D = parse_inputs(X)is3D = (ndims(X) == 3);if is3D% RGBif (size(X,3) ~= 3)error(message('MATLAB:images:rgb2gray:invalidInputSizeRGB'))end% RGB can be single, double, int8, uint8,% int16, uint16, int32, uint32, int64 or uint64validateattributes(X, {'numeric'}, {}, mfilename, 'RGB');elseif ismatrix(X)% MAPif (size(X,2) ~= 3 || size(X,1) < 1)error(message('MATLAB:images:rgb2gray:invalidSizeForColormap'))end% MAP must be doubleif ~isa(X,'double')error(message('MATLAB:images:rgb2gray:notAValidColormap'))endelseerror(message('MATLAB:images:rgb2gray:invalidInputSize'))end总结通过上⾯的代码结合实际的测试,果然,matlab⾃带的rgb2gray也就是加权平均的⽅法,对光线明暗的处理是最好的。

实验一Matlab图像处理基础及图像灰度变换 - 中南大学信.

实验一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。

基于MATLAB的智能灰度化图像处理技术研究

基于MATLAB的智能灰度化图像处理技术研究

基于MATLAB的智能灰度化图像处理技术研究近年来,图像处理技术在人们日常生活中的应用越来越广泛,而基于MATLAB的智能灰度化图像处理技术则成为其中的重要一环。

本文将对灰度化技术的背景、原理及应用进行探讨,旨在为读者提供更深入的了解和应用。

一、灰度化技术的背景图像灰度化技术是图像处理中一个非常基础的技术,其应用涵盖了计算机视觉、人工智能等广泛领域。

灰度化就是将一副彩色图像转化为黑白灰度图像的过程,也是颜色信息压缩的过程之一。

早期的灰度化技术只是简单地将R、G、B三个通道的像素值加权平均,并将结果作为灰度图像的像素值,这种处理方式虽然快速方便,但是却没有充分考虑到人类视觉系统对不同颜色的敏感度不同,因而不同颜色应该赋予不同的权重。

在实际应用中,灰度化技术常用于图像预处理,识别和分类等领域。

智能灰度化技术则是基于灰度化技术的基础上,利用计算机视觉、人工智能等技术对图像进行更加精细化的处理,从而得到更加准确的结果。

二、灰度化技术的原理MATLAB作为一种广泛应用于工程科学、数学及实验室等领域的计算机软件,具有极高的计算精度和较迅速的速度等优点,因而成为了智能灰度化处理技术中的重要开发工具。

在MATLAB中,灰度化技术一般采用下列公式:grayImage = (double(rgbImage(:,:,1)) * 0.2989 + double(rgbImage(:,:,2)) * 0.5870 + double(rgbImage(:,:,3)) * 0.1140)其中rgbImage表示原图像,grayImage表示灰度图像,0.2989、0.5870、0.1140表示颜色通道的近似加权值。

该公式相比于简单的加权平均,更加充分地考虑了人类视觉系统对不同颜色的敏感度,因而能够更保留图像的质量。

三、智能灰度化技术的应用智能灰度化技术在图像处理的许多领域中都得到了广泛应用。

以下简要介绍了与智能灰度化技术相关的应用:1.医学领域的肺部结节检测:智能灰度化技术被用于对肺部CT图像进行灰度化,并通过人工智能算法检测肺部结节。

基于MATLAB的图像伪彩色处理

基于MATLAB的图像伪彩色处理

图像伪彩色处理近几年来,随着多媒体技术和因特网的迅速发展和普及,数字图像处理技术受到了前所未有的广泛重视,出现了许多新的应用领域。

最显著的是数字图像处理技术已经从工业领域、实验室走入了商业领域及办公室,甚至走入了人们的日常生活。

由于彩色图像提供了比灰度图像更为丰富的信息,因此彩色图像处理正受到人们越来越多的关注。

伪彩色处理是根据特定的准则对灰度值赋以彩色的处理。

由于人眼对彩色的分辨率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。

这是一种视觉效果明显而技术又不是很复杂的图像增强技术。

灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辨率却很强,这样将黑白图像转换为彩色图像后,人眼可以提取更多的信息量。

同时MATLAB技术对于我们实现数字图像处理是一种非常有效的实用工具。

1.引言进入21世纪以来,随着微电子技术、计算机技术、现代通信技术的飞速发展,人类社会正健步迈入信息化时代。

在人类所接收到的全部信息中,70%以上的通过视觉得到的。

因此对数字图像进行有效地处理变换十分重要,而且彩色图像占很大的比例,所以,对彩色图像的处理显得尤为重要。

其中伪彩色处理技术就是一项很重要的图像处理技术。

伪彩色处理是指将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布的图像。

由于人眼对彩色的分辨率远高于对灰度差的分辨率,所以这种技术可用来识别灰度差较小的像素。

这是一种视觉效果明显而技术又不是很复杂的图像增强技术。

灰度图像中,如果相邻像素点的灰度相差大,人眼将无法从图像中提取相应的信息,因为人眼分辨灰度的能力很差,一般只有几十个数量级,但是人眼对彩色信号的分辨率却很强,这样将黑白图像转换为彩色图像后,人眼就可以提高对图像细节的辨别力,提取更多的信息量。

因此,伪彩色处理的主要目的是为了提高人眼对图像的细节的分辨能力,以达到图像增强的目的。

基于MATLAB的彩色图像灰度化处理

基于MATLAB的彩色图像灰度化处理

目录第1章绪论............................................................................................................................ - 0 - 第2章设计原理.................................................................................................................... - 1 - 第3章彩色图像的灰度化处理............................................................................................ - 2 - 3.1加权平均法 .. (2)3.2平均值法 (2)3.3最大值法 (3)3.4举例对比 (4)3.5结果分析 (5)第4章结论.......................................................................................................................... - 7 - 参考文献.................................................................................................................................... - 7 - 附录............................................................................................................................................ - 8 -基于Matlab的彩色图像灰度化处理第1章绪论在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。

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

目录第1章绪论............................................................................................... - 0 - 第2章设计原理......................................................................................... - 1 - 第3章彩色图像的灰度化处理...................................................................... - 2 - 3.1加权平均法. (2)3.2平均值法 (3)3.3最大值法 (4)3.4举例对比 (5)3.5结果分析 (7)第4章结论 ............................................................................................. - 8 - 参考文献.................................................................................................... - 10 - 附录.......................................................................................................... - 11 -基于Matlab的彩色图像灰度化处理第1章绪论在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。

这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以是任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。

灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;灰度图像在黑色与白色之间还有许多级的颜色深度。

但是,在数字图像领域之外,“黑白图像”也表示“灰度图像”,例如灰度的照片通常叫做“黑白照片”。

在一些关于数字图像的文章中单色图像等同于灰度图像,在另外一些文章中又等同于黑白图像[1]。

彩色图像的灰度化技术在现代科技中应用越来越广泛, 例如人脸目标的检测与匹配以及运动物体目标的监测等等, 在系统预处理阶段, 都要把采集来的彩色图像进行灰度化处理, 这样既可以提高后续算法速度, 而且可以提高系统综合应用实效, 达到更为理想的要求。

因此研究图像灰度化技术具有重要意义。

本设计是在MATLAB设计环境中完成的。

Matlab的图像处理工具箱提供一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。

可用其对有噪声图像或退化图像进行去噪声或还原、增强图像以获得更高清晰度、提取特征、分析形状和纹理以及对两个图像进行匹配等。

本文主要描述基于Matlab仿真软件,通过加权法平均法,平均值法,最大值法三种方法,实现彩色图像的灰度化处理,并对三种方法的处理结果进行分析对比。

第2章设计原理将彩色图转化成为灰度图的过程称为图像的灰度化处理。

彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化围。

而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化围为255种,所以在数字图像处理中一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。

灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征[2]。

在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。

因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度围为0-255。

本设计采用三种方法对图像进行灰度化处理。

a)加权平均法根据重要性及其它指标,将三个分量以不同的权值进行加权平均。

由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,对RGB三分量进行加权平均能得到较合理的灰度图像。

b)平均值法求出每个像素点的R、G、B三个分量的平均值,然后将彩色图像中的这个平均值赋予给这个像素的三个分量。

c)最大值法将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。

本课程设计分别采用了以上三种设计方案,即加权平均法、平均值法和最大值法。

在MATLAB中,通过编程实现了彩色图像的灰度化处理。

第3章彩色图像的灰度化处理本设计采用的三种方法,都实现了对彩色图像的灰度化处理。

下面分别对其作具体分析。

3.1加权平均法[3]根据重要性及其它指标,将R、G、B三个分量以不同的权值进行加权平均。

由于人眼对绿色的敏感度最高,对蓝色敏感度最低。

因此,在MATLAB中我们可以按下式系统函数对RGB三分量进行加权平均能得到较合理的灰度图像。

f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))(3-1)程序首先读取一个RGB格式的图象,然后调用已有的函数rgb2gray()来实现彩色图像灰度化。

图3.1加权平均法的图像灰度处理3.2平均值法[3]将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。

其表达式见下式:f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3(3-2)用size函数读取原图像图像的尺寸,并以该尺寸构建一个全零矩阵来存储用下面的方法产生的灰度图像。

由于在此之前的语句创建之后图像为双精度型,因而我们采用uint8()将其转化成无符号整型。

然后对原图像中的像素逐点处理,首先采用的是均值法,即将每个像素点上的R,G,B分量取其平均,将处理后均值作为该像素点的灰度值输出,对应代码中MyYuanLaiPic( i,j,k )/3语句,在对所有像素点处理完毕后即可实现彩色图像的灰度化处理。

图3.2平均值法的图像灰度处理3.3最大值法[3]将彩色图像中的R、G、B三个分量中亮度的最大值作为灰度图的灰度值。

其表达式见下式:f(i,j)=max(R(i,j),G(i,j),B(i,j))(3-3)调用max()函数读取像素点上RGB分量中的最大值作为该点灰度值输出,从而实现彩色图像的灰度化处理。

图3.3最大值法的图像灰度处理稍作比较即可发现,以三种方法得到的处理结果并不完全相同,这是由于不同的处理方法对于灰度值的选取不同,考虑库函数rgb2gray(),其转化是依据亮度方程f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))来实现的,即依据人眼对不同颜色的敏感度不同,对RGB分量以不同系数的加权平均,得到较为合理的灰度化结果。

而采用方法二处理是对RGB三个分量取简单的平均,从而得到对应灰度值,而方法三则是直接取用RGB分量中最大值作为灰度值输出。

3.4举例对比[3]为作进一步说明问题,我们可以分别选用红色图,绿色图以及蓝色图用如上方法处理后来进一步比较说明。

首先,我们选用以红色分量较多的图像进行处理,结果如图3.4所示。

(此处仅给出灰度图之间的对比,原彩色图见附录彩页)图3.4红色图像灰度化对比观察如上对比结果可以发现,对于前两种方法处理得到的图2和图3,两图中红色分量灰度化之后基本没有区别,这是由于采用加权平均法对红色分量R的加权系数为0.30,而采用简单平均法的红色分量系数为0.33,故两者对于红色分量的处理结果区别不大,而对于figure4,其采用最大值法,故在亮度现实上明显大于前面二者。

接下来,选取一绿色分量为主的图像进行处理分析,结果如图3.5所示。

图3.5绿色图像灰度化对比观察如上对比图像结果可以发现,图3的亮度明显低于图2,而图4的亮度则为三个处理结果中最大的。

稍加分析,不难发现,这是由于在方法一的处理中,其对于绿色分量的加权系数为0.59,而方法二中绿色分量的系数约为0.33,加之上图中物体部分颜色为绿色,故作处理后,方法一所得的灰度值大于方法二处理得到的灰度值,因而在显示上,方法一对应的图2较之方法二对应的图3更亮;而对于方法三所得的图4,因其取的是最大值,故最终的灰度值也最大,所以显示最亮。

最后,选取一蓝色分量为主的图像进行处理,结果如图3.6所示。

(此处仅给出灰度图之间的对比,原彩色图见附录彩页)图3.6蓝色图像灰度化对比对比如上图像可以发现,此时图3的亮度大于图2的,而图4的亮度依然是三个图像中最大的。

这是由于在得到图2的方法中,其对于蓝色分量的加权系数是0.11,而图3对应的方法二中蓝色分量的系数约为0.33,加之此图像中蓝色分量居多,因而就不难解释如上现象,对于方法一处理后对应像素点的灰度值小于方法三处理后对应点的灰度值,故显示在图像上,图2就偏暗,而图4取的是最大值,故最终在亮度显示上最亮。

3.5结果分析本课程设计中采用的三种不同设计方法对同一彩色图像的灰度化处理结果不相同,究其原因是由于它们在对同一像素点的灰度值确定上采取的手段不一。

对于方法一,其转换公式为f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))(3-4)其对于不同颜色分量RGB的加权系数不相同,对比方法二中采用的f(i,j)=(R(i,j)+G(i,j)+B(i,j)) /3(3-5)其采用的加权系数约为0.33,且对于RBG三个分量采用统一加权系数,所以,当一幅图像中红色分量居多的时候,由于对于红色分量,公式(3-4)计算结果与公式(3-5)计算结果基本相同,即对应点像素灰度值基本一致,故处理结果在亮度显示上区别不大;而对于绿色分量,公式(3-4)计算结果大于公式(3-5)计算结果,也即处理所得的像素灰度值更大,所以在绿色分量居多的图像中,两者在处理后,方法一所得图像亮度大于方法二处理得到的图像;同理,对于蓝色分量居多的图像,其方法一处理所得的图像在亮度显示上会低于方法二处理得到的图像。

对于方法三,由于其对灰度值的选取上取的是最大值,故在最终显示上也最亮。

根据上文分析,也就不难解释在图像3.1,3.2和3.3之间显示不同的问题。

由于原图是一七彩图,其包含了红、绿、蓝以及这三者组合得到的其他颜色分量,故在最终显示上,由方法一所得的图3.1可在对比方法二所得的图3.2时,有些部分偏亮,而有些部分则偏暗,这都是由于两种方法中对不RGB三个不同分量的加权平均系数不一致而造成的。

而对于方法三,由于它只是简单的选取三个分量中的最大值作为灰度值输出,故图3.3的亮度最大。

第4章结论通过对彩色图像灰度处理,可以看出载不同情况下得出的图像不同。

相关文档
最新文档