基于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章绪论在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。

matlab灰度处理二值化处理

matlab灰度处理二值化处理

Matlab在图像处理领域有着广泛的应用,其中灰度处理和二值化处理是常见的图像处理方法之一。

本文将详细介绍Matlab中的灰度处理和二值化处理的原理和实现方法。

一、灰度处理1. 灰度图像的概念灰度图像是指图像中每个像素的灰度值介于0-255之间的图像。

在灰度图像中,0代表黑色,255代表白色,中间的灰度值代表了不同程度的灰色。

2. 灰度处理的原理灰度处理是将彩色图像转换为灰度图像的过程。

在Matlab中,可以通过以下公式实现灰度处理:灰度值 = 0.299 * R + 0.587 * G + 0.114 * B其中,R、G、B分别代表彩色图像中的红色、绿色和蓝色分量。

通过对每个像素的RGB分量进行加权求和,可以得到对应的灰度值。

3. 灰度处理的实现在Matlab中,可以使用`rgb2gray`函数实现灰度处理。

具体的代码如下:```matlab读取彩色图像rgbImage = imread('example.jpg');灰度处理grayImage = rgb2gray(rgbImage);显示灰度图像imshow(grayImage);```二、二值化处理1. 二值化图像的概念二值化图像是指将灰度图像中的像素值转换为0或255的图像。

在二值化图像中,像素值为0代表黑色,像素值为255代表白色。

2. 二值化处理的原理二值化处理的目的是将灰度图像中的灰度值转换为0或255。

一般可以通过设置一个阈值,将低于阈值的像素值设为0,将高于阈值的像素值设为255。

3. 二值化处理的实现在Matlab中,可以使用`im2bw`函数实现二值化处理。

具体的代码如下:```matlab读取灰度图像grayImage = imread('example_gray.jpg');设置阈值threshold = 128;二值化处理binaryImage = im2bw(grayImage, threshold/255);显示二值化图像imshow(binaryImage);```三、总结本文详细介绍了Matlab中灰度处理和二值化处理的原理和实现方法。

彩色图转灰度图--matlab-实现代码

彩色图转灰度图--matlab-实现代码

(一):彩色图像转灰度图1、设计任务1) 读入彩色和灰度图像并显示;2) 对彩色图像转化为灰度图像并显示;3) 比较两种方法的效果。

2、设计目的1) 掌握彩色图转灰度图的基本原理与方法;2) 初步掌握MATLAB的使用方法;3) 了解MATLAB在数字信号处理,尤其是图像处理中显现出来的优势。

3、源代码% 把RGB格式的图片转换为YUV格式。

clear; clc;x=imread('lena512.BMP');[line,row,dim]=size(x);x1=double(x); % 数据类型转换subplot(1,3,1) % 分割当前绘图窗口为(1,3)的区域,显示此图片与1号区域imshow(uint8(x)) % 数据类型转换,并且显示当前图片title('原图');% 矩阵乘,根据【RGB】转【YUV】关系转灰度图Y1=0.299*x(:,:,1)+0.587*x(:,:,2)+0.114*x(:,:,3);y1=[round(Y1)]; % 取整subplot(1,3,2)imshow(uint8(y1))title('根据各分量转换关系转换后图片');% 求RGB各个分量均值转灰度图Y2=(x(:,:,1)+x(:,:,2)+x(:,:,3))/3;y2=[round(Y2)];subplot(1,3,3)imshow(uint8(y2))title('求均值转换后图片');图(1)彩色转灰度图程序运行结果4、结果分析由运行结果可以看出,根据RGB到YUV各个分量关系转换得到的灰度图比较真实,而用简单的求RGB各个分量的均值转弧度图,其结果很不理想,图片基本看不清楚原来的轮廓。

(二):对灰度图像实现按比例缩小和放大1、设计任务1) 对灰度图实现在行上k1=0.6,列上k2=0.75的按比例缩小;2) 对灰度图实现在行上k1=1.2,列上k2=1.5的按比例放大;2、设计目的1) 掌握图像的放大和缩小原理;2) 用MATLAB实现图像的按比例放大和缩小;3) 明白图像的放大和缩小并不是简单的互为逆过程。

MATLAB灰度彩色转换程序

MATLAB灰度彩色转换程序

%A simple program for pseudo colouring%The program converts a gray level image (0-256)(single layer) to pseudo color image (3 layer)%by altering the conditions and values, U can create more perfect pseudo color image.clc;clear all;im=input('Enter the file name (gray level image) :','s');k=imread(im);[x y z]=size(k);% z should be one for the input imagek=double(k);for i=1:xfor j=1:yif k(i,j)>=0 & k(i,j)<50m(i,j,1)=k(i,j,1)+5;m(i,j,2)=k(i,j)+10;m(i,j,3)=k(i,j)+10;endif k(i,j)>=50 & k(i,j)<100m(i,j,1)=k(i,j)+35;m(i,j,2)=k(i,j)+28;m(i,j,3)=k(i,j)+10;endif k(i,j)>=100 & k(i,j)<150m(i,j,1)=k(i,j)+52;m(i,j,2)=k(i,j)+30;m(i,j,3)=k(i,j)+15;endif k(i,j)>=150 & k(i,j)<200m(i,j,1)=k(i,j)+50;m(i,j,2)=k(i,j)+40;m(i,j,3)=k(i,j)+25;endif k(i,j)>=200 & k(i,j)<=256m(i,j,1)=k(i,j)+120;m(i,j,2)=k(i,j)+60;m(i,j,3)=k(i,j)+45;endendendfigure,imshow(uint8(k),[]);figure,imshow(uint8(m),[]);这是我的代码,想实现逆滤波,但结果不对,不知道问什么。

使用MATLAB进行图像处理的基本技巧

使用MATLAB进行图像处理的基本技巧

使用MATLAB进行图像处理的基本技巧图像处理是数字图像处理的一种重要分支,通过对图像进行数字信号处理,实现增强、恢复、分割和分析等目标。

MATLAB作为一款强大的数学计算软件,也可以用于图像处理,并提供了丰富的图像处理工具箱。

本文将介绍一些使用MATLAB进行图像处理的基本技巧。

一、图像的读取与显示在MATLAB中,可以使用imread函数读取图像文件,常见的格式包括jpg、png和bmp等。

读取图像的语法格式为:img = imread('image.jpg');其中,'image.jpg'为图像文件的路径和文件名,读取的图像将存储在img数组中。

读取图像后,可以使用imshow函数将图像显示在窗口中。

语法格式如下:imshow(img);其中,img为待显示的图像数组。

二、图像的缩放对于不同的应用需求,我们可能需要对图像进行缩放。

在MATLAB中,可以使用imresize函数实现图像的缩放。

语法格式如下:resized_img = imresize(img, scale);其中,img为待缩放的图像数组,scale为缩放比例。

通过调整scale的值,可以实现图像的放大或缩小。

三、图像的灰度化在某些情况下,我们只关注图像的亮度信息,而忽略颜色信息。

此时可以将图像转换为灰度图像,以降低计算复杂度。

在MATLAB中,可以使用rgb2gray函数实现图像的灰度化。

语法格式如下:gray_img = rgb2gray(img);其中,img为待灰度化的图像数组,gray_img为转换后的灰度图像数组。

四、图像的滤波图像滤波是图像处理中常用的技术,用于去除图像中的噪声、平滑图像或增强图像的某些特征。

在MATLAB中,常用的图像滤波函数包括均值滤波、中值滤波和高斯滤波等。

1. 均值滤波均值滤波可以有效地平滑图像,并去除部分噪声。

在MATLAB中,可以使用imfilter函数实现均值滤波。

MATLAB图像处理工具箱的使用方法

MATLAB图像处理工具箱的使用方法

MATLAB图像处理工具箱的使用方法导言:MATLAB作为一种常用的数学软件,被广泛应用于科学研究和工程领域。

其中的图像处理工具箱(Image Processing Toolbox)提供了许多功能强大的工具,用于处理和分析图像数据。

本文将介绍一些常用的图像处理工具箱的使用方法,帮助读者更好地掌握这一工具箱的优势。

一、图像的读取和显示要使用MATLAB进行图像处理,首先需要将图像读入MATLAB环境中,并显示出来。

通过imread函数可以方便地读取图像文件,如下所示:img = imread('image.jpg');这将会将名为'image.jpg'的图像读入img变量中。

接下来,使用imshow函数可以将图像显示在MATLAB的图像窗口中:imshow(img);通过这种方式,我们可以直观地了解图像的内容和特征。

二、图像的灰度化和二值化在很多图像处理应用中,我们常常需要将图像转换为灰度图像或二值图像。

在MATLAB中,可以使用rgb2gray函数将彩色图像转换为灰度图像:gray_img = rgb2gray(img);这将把彩色图像img转换为灰度图像gray_img。

接下来,使用im2bw函数可以将灰度图像转换为二值图像:binary_img = im2bw(gray_img);这将把灰度图像gray_img转换为二值图像binary_img。

通过灰度化和二值化的处理,我们可以更方便地进行后续的图像分析和处理。

三、图像的平滑处理图像中常常存在噪声,这会对后续的分析和处理造成一定的干扰。

为减少这种噪声的影响,可以对图像进行平滑处理。

在MATLAB中,有多种方法可以实现图像的平滑处理,其中较常用的是均值滤波和高斯滤波。

通过使用函数imgaussfilt和imfilter,可以分别实现高斯滤波和均值滤波:smooth_img = imgaussfilt(img);或者smooth_img = imfilter(img, fspecial('average', [3 3]));这些函数可以在图像中应用指定的滤波器来平滑图像,从而减少噪声的干扰。

基于MATLAB的数字图像灰度修正处理

基于MATLAB的数字图像灰度修正处理

河北大学工商学院数字图像处理结课作业题目:基于MATLAB的数字图像灰度修正处理姓名学号:XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班XXXXXX XXXXXXXXXX XXXXXXX班组别:第十五组指导教师:XXXXXX20XX年 XX月 XX日摘要:灰度修正处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化和图像显示的一个重要组成部分。

在成像过程中,很多因素会导致图像的灰度级发生失真。

本文主要说明了灰度级失真的原因,并针对这些问题讨论了如何基于MATLAB在图像采集系统中对图像像素进行修正。

我们完成图像的灰度变换和直方图均衡化,使图像能够补偿成均匀的成像,在视觉上得到改善达到预期的显示效果。

关键词:图像处理;灰度变换;MATLAB;图像采集图像是人类获取和交换信息的主要来源,图像处理起初主要应用在遥感、医学等领域。

然而,随着人类活动范围的不断扩大、需求不断提高,图像处理的应用几乎渗透到科学研究、工程技术和人类社会生活的各个领域。

图像校正是指对失真图像进行的复原性处理。

实际的复原过程是设计一个滤波器,使其能从失真图象中计算得到真实图象的估值,使其根据预先规定的误差准则,最大程度地接近真实图象。

一灰度及灰度失真在成像过程中,很多因素会导致图像的灰度发生失真,如光照的强弱、光电转换系统中感光部件的灵敏度、电子元器件特性的不稳定等,均可引起图像亮度的不均匀。

还有一些原因也会引起图像的失真:成象系统的象差、畸变、带宽有限等造成的;由于成象器件拍摄姿态和扫描非线性引起的;由于运动模糊、辐射失真、引入噪声等造成的。

灰度级矫正希望在图像采集系统中对图像像素进行逐点修正使得整幅图像能够补偿成均匀的成像。

图象校正的基本思路是,根据图像失真原因,建立相应的数学模型,从被污染或畸变的图象信号中提取所需要的信息,沿着使图象失真的逆过程恢复图象本来面貌。

Matlab处理灰度图

Matlab处理灰度图

作业2:通过图像分析的方法对如下图像进行分析,获取颗粒特性参数。

具体参数包括图像中的颗粒个数,颗粒面积,颗粒等效直径,非球形颗粒的长/短轴,非球形颗粒的方位。

图1 待处理颗粒图像步骤:(1)读入该图像;注:采用函数imread,格式:A = imread(filename),例一下面这段代码读取一张图片并显示出来filename = 'image.bmp';imgRgb = imread(filename); % 读入一幅彩色图像imshow(imgRgb); % 显示彩色图像对于本次练习图像,需要在读入后反色处理。

即:imgRgb=255-imgRgb;(2)对图像进行二值化;注:Matlab函数rgb2gray,函数功能:将真彩色图像转换为灰度图像。

例二% 1. 显示RGB真彩色图像imgrgb = imread('flower.jpg');figure('Name', '显示真彩色图像')imshow(imgrgb)% 2. 显示灰度图像figure('Name', '显示灰度图像')imshow(imggray)注:函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。

一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。

例三I2 = im2bw(imggray, 0.5) %将灰度图转变为二值图(3)分析图像信息;注:regionprops(英文get the properties of region)用来度量图像区域属性的函数.常用来统计被标记的区域的面积分布,显示区域总数。

语法:STATS = regionprops(L,properties)描述:测量标注矩阵L中每一个标注区域的一系列属性。

L 中不同的正整数元素对应不同的区域,例如:L 中等于整数1的元素对应区域1;L 中等于整数2的元素对应区域2;以此类推。

matlab 图像 实验报告

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,程序运行平台为Windows98/2000/XP。

本次课程设计通过加权平均法、平均值法和最大值法这三种方法,实现了彩色图像的灰度化处理,并对它们进行了对比分析。

最后,完成了彩色图像灰度化的仿真。

关键词: MATLAB7.0;彩色图像;灰度化目录1设计目的 (1)2设计方案 (1)3相关知识 (2)4 详细设计 (3)5 源代码及分析 (4)6 功能仿真图及分析 (6)7结束语 (11)8参考文献 (12)附录彩页图像 (13)1设计目的1、通过MATLAB仿真软件,实现彩色图像的灰度化处理;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、加权平均法根据重要性及其它指标,将三个分量以不同的权值进行加权平均。

Matlab中编写将彩色图像颜色传递给灰度图像的函数

Matlab中编写将彩色图像颜色传递给灰度图像的函数

Matlab中编写将彩色图像颜色传递给灰度图像的函数作者:杨风暴来源:转载发布时间:2008-7-3 8:19:54减小字体增大字体颜色迁移是将一幅彩色图像的颜色方案传递到另外一幅灰度图像或彩色图像,使后者的图像内容还保持原来的,但颜色却和前者相似的自然感的彩色信息处理技术,在近年来得到了许多领域研究者的青睐。

由于许多图像如旧照片、红外热图像、动画图像、一些科学检测图像、计算机生成图像等可能是灰度、单色调图像,为了通过增加颜色提高图像的可用性,符合人的视觉习惯,减少观察者的疲劳度,往往需要颜色迁移技术,下面是利用Matlab编写的一个函数,其可以将一个彩色图像的颜色传递给灰度图像,且具有较强的自然感。

这里的颜色迁移实际上是在lαβ颜色空间进行的,因而需要将彩色图像从RGB颜色空间转换到lαβ颜色空间,颜色迁移完后在进行逆变换。

关于颜色空间转换可以参照以前的介绍的“Matlab中图像数据在RGB与lαβ颜色空间之间的转换”。

%%%----颜色迁移color transferfunction swgc=swatchcolortransfer(swg,swc,hwin,sizejit)%swg——灰度图像矩阵%swc——彩色图像矩阵(三页面24位真彩色图像)%hwin——滤波窗口的大小%sizejit——随机采样点数,一般根据彩色图像的大小取50、100、200等等swg=double(swg);swc=double(swc);sizewin=2*hwin+1;%彩色图像的颜色空间转换(from RGB space to lab)labsw=rgblab(swc,0);%求均值、方差ms=zeros(3,2);ms(1,1)=mean2(labsw(:,:,1));ms(1,2)=std2(labsw(:,:,1)); ms(2,1)=mean2(labsw(:,:,2));ms(2,2)=std2(labsw(:,:,2)); ms(3,1)=mean2(labsw(:,:,3));ms(3,2)=std2(labsw(:,:,3));%数据校正uc=mean2(labsw(:,:,1));dc=std2(labsw(:,:,1));ug=mean2(swg(:,:,1));dg=std2(swg(:,:,1));if dg~=0labsw(:,:,1)=(labsw(:,:,1)-uc).*(dg/dc)+ug;end%求颜色转移时的匹配矢量ucv0=colfilt(labsw(:,:,1),[sizewin,sizewin],'sliding',@mean); dcv0=colfilt(labsw(:,:,1),[sizewin,sizewin],'sliding',@std); ugv0=colfilt(swg(:,:,1),[sizewin,sizewin],'sliding',@mean); dgv0=colfilt(swg(:,:,1),[sizewin,sizewin],'sliding',@std);[mc nc]=size(labsw(:,:,1));[mg ng]=size(swg(:,:,1));ucv=ucv0(1+hwin:mc-hwin,1+hwin:nc-hwin);dcv=dcv0(1+hwin:mc-hwin,1+hwin:nc-hwin); ugv=ugv0(1+hwin:mg-hwin,1+hwin:ng-hwin); dgv=dgv0(1+hwin:mg-hwin,1+hwin:ng-hwin);sw_u=ugv;sw_d=dgv;labsw=labsw(1+hwin:mc-hwin,1+hwin:nc-hwin,:); swg=swg(1+hwin:mg-hwin,1+hwin:ng-hwin,:);mc=mc-2*hwin;nc=nc-2*hwin;mg=mg-2*hwin;ng=ng-2*hwin;% 随机采集颜色像素集seljitt=zeros(sizejit,5);for i=1:sizejitra1=uint16(rand(1)*(mc-1)+1);ra2=uint16(rand(1)*(nc-1)+1);seljitt(i,1:3)=labsw(ra1,ra2,1:3);seljitt(i,4)=ucv(ra1,ra2);seljitt(i,5)=dcv(ra1,ra2);end% 匹配与颜色转递for ii=1:mgfor jj=1:ngminv=100000;for i=1:sizejitLS=abs(seljitt(i,4)-ugv(ii,jj))+abs(seljitt(i,5)-dgv(ii,jj));if LS<minvminv=LS;iii=i;endendswg(ii,jj,2:3)=seljitt(iii,2:3);endend% 颜色空间逆变换(from lab space to RGB)swgc=rgblab(swg(1:mg,1:ng,:),1);return swgc;。

  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章结论通过对彩色图像灰度处理,可以看出载不同情况下得出的图像不同。

相关文档
最新文档