数字图像处理之彩色图像的处理
数字图像处理_实验报告书(八)彩色图像处理
rgb=cat(3,rgb_R,rgb_G,rgb_B);figure,imshow(rgb),title('RGB彩色图像');截图:(2)编写MATLAB程序,将一彩色图像从RGB空间转换为HIS空间,并观察其效果。
如例9.2所示。
程序:rgb=imread('LenaRGB.bmp');figure,imshow(rgb);rgb1=im2double(rgb);r=rgb1(:,:,1);g=rgb1(:,:,2);b=rgb1(:,:,3);I=(r+g+b)/3figure,imshow(I);tmp1=min(min(r,g),b);tmp2=r+g+b;tmp2(tmp2==0)=eps;S=1-3.*tmp1./tmp2;figure,imshow(S);tmp1=0.5*((r-g)+(r-b));tmp2=sqrt((r-g).^2+(r-b).*(g-b));theta=acos(tmp1./(tmp2+eps));H=theta;H(b>g)=2*pi-H(b>g);H=H/(2*pi);H(S==0)=0;figure,imshow(H);截图:(3)编写MATLAB程序,将一彩色图像在RGB空间进行彩色分割,并观察其效果。
如例9.11所示。
程序:rgb=imread('LenaRGB.bmp');figure,imshow(rgb);rgb1=im2double(rgb);r=rgb1(:,:,1);figure,imshow(r);g=rgb1(:,:,2);figure,imshow(g);b=rgb1(:,:,3);figure,imshow(b);r1=r;r1_u=mean(mean(r1(:)));[m,n]=size(r1);sd1=0.0;for i=1:mfor j=1:nsd1= sd1+(r1(i,j)-r1_u)*(r1(i,j)-r1_u);endendr1_d=sqrt(sd1/(m*n));r2=zeros(size(rgb1,1),size(rgb1,2));ind=find((r>r1_u-1.25*r1_d)&(r<r1_u+1.25*r1_d));r2(ind)=1;figure,imshow(r2);截图:(4)编写MATLAB程序,将一彩色图像在向量空间进行边缘检测,并观察其效果。
彩色图像的灰度化处理
第1章绪论1.1数字图像数字图像,又称数码图像或数位图像,是二维图像用有限数字数值像素的表示。
数字图像是由模拟图像数字化得到的、以像素为基本元素的、可以用计算机或数字电路存储和处理的图像。
像素(或像元,Pixel)是数字图像的基本元素,像素是在模拟图像数字化时对连续空间进行离散化得到的。
每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。
通常,像素在计算机中保存为二维整数数阻的光栅图像,这些值经常用压缩格式进行传输和储存。
数字图像可以许多不同的输入设备和技术生成,例如数码相机、扫描仪、坐标测量机、seismographic profiling、airborne radar等等,也可以从任意的非图像数据合成得到,例如数学函数或者三维几何模型,三维几何模型是计算机图形学的一个主要分支。
数字图像处理领域就是研究它们的变换算法。
1.2设计平台本次设计采用的平台是MATLAB 7.0。
MATLAB编程语言被业界称为第四代计算机语言,它允许按照数学推导的习惯编写程序。
MATLAB7.0的工作环境包括当前工作窗口、命令历史记录窗口、命令控制窗口、图形处理窗口、当前路径选择菜单、程序编辑器、变量查看器、模型编辑器、GUI编辑器以及丰富的函数库和MATLAB附带的大量M文件。
MATLAB是由美国Math Works公司生产的一个为科学和工程计算专门设计的交互式大型软件,是一个可以完成各种计算和数据处理的、可视化的、强大的计算工具。
它集图示和精确计算于一身,在应用数学、物理、化工、机电工程、医药、金融和其他需要进行复杂计算的领域得到了广泛应用。
MATLAB作为一种科学计算的高级语言之所以受欢迎,就是因为它有丰富的函数资源和工具箱资源,编程人员可以根据自己的需要选择函数,而无需再去编写大量繁琐的程序代码,从而减轻了编程人员的工作负担,被称为第四代编程语言。
在MATLAB设计环境中,图像处理工具箱提供一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法开发。
数字图像处理实验八
数字图像处理实验实验八:彩色图像处理学院:信息工程学院姓名:学号:专业及班级:指导教师:一、实验目的使用MatLab 软件对图像进行彩色处理。
使学生通过实验熟悉使用MatLab软件进行图像彩色处理的有关方法,并体会到图像彩色处理技术以及对图像处理的效果。
二、实验内容要求学生能够完成彩色图像的分析,能正确讨论彩色图像的亮度、色调等性质;会对彩色图像进行直方图均衡,并能正确解释均衡处理后的结果;能够对单色图像进行伪彩色处理、利用多波长图像进行假彩色合成、进行单色图像的彩色变换。
利用MATLAB软件实现彩色图像处理的程序:rgb_image=imread('flower1.tif'); %读取图像flower1.tiffR=rgb_image(:,:,1); %获取图像的红色分量fG=rgb_image(:,:,2); %获取图像的绿色分量fB=rgb_image(:,:,3); %获取图像的蓝色分量figure(1),imshow(fR) %分别显示图像figure(2),imshow(fG)figure(3),imshow(fB)%实现rgb图像转化为NTSC彩色空间的图像yiq_image=rgb2ntsc(rgb_image);fY=yiq_image(:,:,1); %图像flower1.tif的亮度fI=yiq_image(:,:,2); %图像flower1.tif的色调fQ=yiq_image(:,:,3); %图像flower1.tif的饱和度figure(4),imshow(fY)figure(5),imshow(fI)figure(6),imshow(fQ)fR=histeq(fR,256); %对彩色图像的分量进行直方图均衡化fG=histeq(fG,256);fB=histeq(fB,256);RGB_image=cat(3,fR,fG,fB); %将直方图均衡化后的彩色图像合并figure,imshow(RGB_image) %观察处理后的彩色图色度,亮度参照前面f1=imread('v1_red.jpg');f2=imread('v1_green.jpg');f3=imread('v1_blue.jpg');f4=imread('infer_near.jpg');ture_color=cat(3,f1,f2,f3);figure,imshow(ture_color) %显示由红、绿、蓝三幅图合成的彩色图false_color=cat(3,f4,f2,f3); %用近红外图像代替R分量figure,imshow(false_color) %显示由近红外、绿、蓝三幅图合成的假彩色图f=imread('head.jpg');cut_1=imadjust(f,[0.0925 0.5],[0.0925 0.5]);%提取灰度在16-128之间的像素cut_2=imadjust(f,[0.5 1],[0.5 1]); %提取灰度在128-256之间的像素figure,imshow(cut_1),colormap(hot) %显示图像cut_1,并使用hot模型彩色化figure,imshow(cut_2),colormap(cool) %显示图像cut_2,并使用cool模型彩色化三、实验具体实现(1) 彩色图像的分析调入并显示彩色图像flower1.tif ;拆分这幅图像,并分别显示其R,G,B分量;根据各个分量图像的情况讨论该彩色图像的亮度、色调等性质。
[数字图像处理](一)彩色图像转灰度图像的三种方式与效果分析
[数字图像处理](⼀)彩⾊图像转灰度图像的三种⽅式与效果分析图像处理(⼀)彩⾊图⽚转灰度图⽚三种实现⽅式最⼤值法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也就是加权平均的⽅法,对光线明暗的处理是最好的。
数字图像处理第六章色彩模型与彩色处理课件
Chapter 6 Color Image Processing
6.1 彩色基础
在颜料或着色剂中 ,原色的定义是这样 的:
白:减去一种原色 , 反射或传输另两种 原色。故其原色是: 深红、青、黄。而二 次色是R、G、B。如 图6.4所示。
Chapter 6 Color Image Processing
Chapter 6 Color Image Processing
6.2 彩色模型
6.2.1 RGB彩色模型
下面介绍所谓 全RGB彩色子集。
Chapter 6
Color Image Processing
6.2 彩色模型
Chapter 6 Color Image Processing
6.2 彩色模型
6.3 伪彩色处理
6.3 伪彩色处理 给特定的灰度值赋以彩色。伪彩色的 目的是为了人眼观察和解释图像中的目标。
Chapter 6 Color Image Processing
6.3 伪彩色处理
6.3.1 强度分层
参见图6.18,图像被看成三维函数。
Chapter 6 Color Image Processing
6.3.2 灰度级到 彩色转换
例6.5是一突出 装在行李内的爆炸物 的伪彩色应用。
Chapter 6 Color Image Processing
6.3 伪彩色处理
6.3.2 灰度级到彩 色转换
例6.5是一突出装 在行李内的爆炸物的伪彩 色应用。
Chapter 6 Color Image Processing
6.3 伪彩色处理
Chapter 6 Color Image Processing
6.3 伪彩色处理
彩色图像分割
二值、灰度形态学
二值形态学中的运算对象是集合。设A为图像集合,S为结 构元素,数学形态学运算是用S对A进行操作。需要指出,实际 上结构元素本身也是一个图像集合。对每个结构元素可以指定 一个原点,它是结构元素参与形态学运算的参考点。应注意, 原点可以包含在结构元素中,也可以不包含在结构元素中,但 运算的结果常不相同。以下用阴影代表值为1的区域,白色代表 值为0的区域,运算是对值为1的区域进行的。二值形态学中两 个最基本的运算——腐蚀与膨胀,如图所示。
基本符号和术语
1. 元素和集合
在数字图像处理的数学形态学运算中,把一幅图像称为一个 集合。对于二值图像而言,习惯上认为取值为1的点对应于景 物中心,用阴影表示,而取值为0的点构成背景,用白色表示, 这类图像的集合是直接表示的。考虑所有值为1的点的集合为 A, 则A与图像是一一对应的。对于一幅图像A,如果点a在A
y S1
O
y
x X
X○ S1 X○ S2
O S2
x
(a)
(b)
X (c)
图 (a) 结构元素S1和S2
(b) X○S1
(c) X○S2
y S1
O
y
x
S1 X
X● S1
X● S2
O S2
x
X
S1
(a)
(b)
图 (a) 结构元素S1和S2
(c)
(b) X●S1; (c) X●S2
数字图像处理
数字图像处理概述数字图像处理是一项广泛应用于图像处理和计算机视觉领域的技术。
它涉及对数字图像进行获取、处理、分析和解释的过程。
数字图像处理可以帮助我们从图像中提取有用的信息,并对图像进行增强、复原、压缩和编码等操作。
本文将介绍数字图像处理的基本概念、常见的处理方法和应用领域。
数字图像处理的基本概念图像的表示图像是由像素组成的二维数组,每个像素表示图像上的一个点。
在数字图像处理中,我们通常使用灰度图像和彩色图像。
•灰度图像:每个像素仅包含一个灰度值,表示图像的亮度。
灰度图像通常表示黑白图像。
•彩色图像:每个像素包含多个颜色通道的值,通常是红、绿、蓝三个通道。
彩色图像可以表示图像中的颜色信息。
图像处理的基本步骤数字图像处理的基本步骤包括图像获取、前处理、主要处理和后处理。
1.图像获取:通过摄像机、扫描仪等设备获取图像,并将图像转换为数字形式。
2.前处理:对图像进行预处理,包括去噪、增强、平滑等操作,以提高图像质量。
3.主要处理:应用各种算法和方法对图像进行分析、处理和解释。
常见的处理包括滤波、边缘检测、图像变换等。
4.后处理:对处理后的图像进行后处理,包括去隐私、压缩、编码等操作。
常见的图像处理方法滤波滤波是数字图像处理中常用的方法之一,用于去除图像中的噪声或平滑图像。
常见的滤波方法包括均值滤波、中值滤波、高斯滤波等。
•均值滤波:用一个模板覆盖当前像素周围的像素,计算平均灰度值或颜色值作为当前像素的值。
•中值滤波:将模板中的像素按照灰度值或颜色值大小进行排序,取中值作为当前像素的值。
•高斯滤波:通过对当前像素周围像素的加权平均值来平滑图像,权重由高斯函数确定。
边缘检测边缘检测是用于寻找图像中物体边缘的方法。
常用的边缘检测算法包括Sobel 算子、Prewitt算子、Canny算子等。
•Sobel算子:通过对图像进行卷积运算,提取图像中的边缘信息。
•Prewitt算子:类似于Sobel算子,也是通过卷积运算提取边缘信息,但采用了不同的卷积核。
数字图像处理的常用方法
数字图像处理的常用方法随着科技的发展,数字图像处理已经深入到每一个角落。
不论是专业的图像处理从业人员还是普通大众,它们都在使用各种计算机软件和硬件来处理复杂的图像。
在这里,我们将简要介绍常用的数字图像处理方法。
首先,我们将讨论图像压缩。
图像压缩是一种数字图像处理方法,它可以将大型图像容量减小,从而加快图像传输过程,并减少储存空间的使用,同时也不会影响图像的质量。
一般来说,有损压缩和无损压缩是当前应用最广泛的两种图像压缩技术。
其次,去噪是一种数字图像处理方法,用于消除图像中的噪声。
通常情况下,噪声由图像传感器,摄影机或相机传感器,也可能由数据传输过程中的干扰产生。
图像去噪可以从噪声中消除图像中细微的不和谐,恢复其原始质量,从而实现清晰的图像。
一般来说,最常用的去噪方法包括中值滤波,均值滤波,高斯滤波和离散小波变换等。
此外,图像分割和目标检测也是数字图像处理方法。
图像分割是将图像划分为一些简单、连续的图像区域的过程,以便从中提取出需要处理的特定对象。
这项技术可以使用不同的技术来实现,如阈值分割,聚类,区域生长和形态学操作等。
目标检测是将图像处理技术应用于从图像中检测指定目标的过程。
常用的目标检测技术有基于模式匹配、视觉算法、基于卷积神经网络的检测等。
最后,彩色转换是一种根据显示器的光谱特性和人眼的视觉感受,将彩色图像从数字格式转换为其他格式的方法。
它可以改变图像的色彩,让图像看起来更亮、更加艳丽,从而增强图像的视觉效果。
常用的彩色传输方法包括YCbCr色彩空间,HSV色彩空间,RGBA色彩空间等。
从上面的介绍可以看出,数字图像处理技术有很多,每种技术都有其特定的应用领域。
比如,压缩能够加快图像传输,减少存储空间的使用;去噪可以消除图像噪声,从而恢复其原始质量;图像分割和目标检测可以从图像中提取出需要处理的特定对象;彩色转换可以改变图像的色彩,让图像看起来更亮,更加艳丽。
数字图像处理技术的发展速度非常快,它们已经成为当今社会认知增强,智能服务和新媒体应用等多个方面的核心技术。
数字图像处理方法-图像增强2
求出:k1和k2 求出:l1和l2
第五章 图像增强
23
空域处理—彩色图像增强
彩色平衡实现的算法
9 分别对R、G、B图像实施变换:
*=
+
R(x, y) k1*R(x, y) k 2
B(x, y)* = l1*B(x, y) + l2
G(x, y)* = G(x, y)
9 得到彩色平衡图像
第五章 图像增强
直方图均衡化的技术要点:
公理:直方图p(rk ),为常数的图像对比度最好
目标:寻找一个灰度变换函数T(r),使结果图像 的直方图p(sk )为一个常数
第五章 图像增强
3
空域处理—直方图增强
直方图均衡—灰度变换函数
1) 求出原图 f 的灰度直方图,设为h。h为一个256维的向 量。
2) 求出图像 f 的总体像素个数, Nf=m ×n
第五章 图像增强
32
空域处理—彩色图像增强
伪彩色增强
人类可以分辨比灰度层次更多的颜色种类 将灰度图像变换为彩色图像——伪彩色图像 方法:伪彩色变换,密度分割
伪彩色变换法—独立映射表变换法
9对灰度图像 f(x, y),建立颜色映射表:
IR
=
T (I ) R
IG
=
T (I ) G
I = T (I )
B
B
9形成RGB图像各分量为: R (x , y ) = T R ( f (x , y
))
第五章 图像增强
G (x, y ) = TG( f (x, y ))
B(x, y) = TB( f (x, y
33
))
空域处理—彩色图像增强
伪彩色变换流程
电子科技大学数字图像处理实验报告2
电子科技大学数字图像处理实验报告实验名称彩色图像处理实验序号学生姓名学生学号指导教师提交日期摘要本实验利用MATLAB软件,对彩色图像作了一些简单处理。
通过访问数字图像RGB三个通道的对应矩阵,改变数字图像的色彩,得到了原图像的补色图像。
并编写了图像的RGB模型与HSI模型相互转换的程序,实现了两个模型之间的互相转换。
为了得到HSI模型的补色,可将HSI模型转换为RGB模型,用RGB的反色来近似HSI的反色。
然后对彩色图像加入高斯与椒盐噪声,观察了加入噪声后RGB三个通道的图像效果,并通过算术均值滤波与中值滤波分别对三个通道进行去噪,达到对整个彩色图像的去噪。
最后证明了单个通道的噪声会通过到HSI的转换扩散到所有HSI图像上。
实验原理:1、三基色原理:人的眼睛就像一个三色接收器的体系,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生。
同样绝大多数单色光也可以分解成红(red)绿(green)蓝(blue)三种色光。
这是色度学的最基本原理,即三基色原理。
三种基色是相互独立的,任何一种基色都不能由其它两种颜色合成。
红绿蓝是三基色,这三种颜色合成的颜色范围最为广泛。
红绿蓝三基色按照不同的比例相加合成混色称为相加混色。
人眼接收色彩的方法:加法混色。
光色(红色+绿色)=黄色(yellow)光色(红色+蓝色)=紫红(magenta)光色(蓝色+绿色)=青色(cyan)印刷四色:减法呈色颜料(黄色+青色)=白色-红色-蓝色=绿色颜料(紫红+青色)=白色-红色-绿色=蓝色颜料(黄色+紫红)=白色-绿色-蓝色=红色颜料色另外会附加一个黑色,即cyan、magenta、yellow、black四色(cmyk)。
2、彩色图像表示方法:RGB图像:一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色像素点都是在特定空间位置的彩色图像相对应的红绿蓝三个分量。
RGB图像可以看成是一个有三幅灰度图像形成的“堆”,形成一幅RGB图像的三个图像常称为红、绿或蓝分量图像。
数字图像处理1-关于灰度,比特深度,彩色图像等名词的理解
灰度图像灰度图像是区别于普通rgb编码图像的一种特别的图像编码。
它将一张黑白照片的每个像素设置了256个灰度档,每个像素根据自身反应的图像上点的明亮程度来展示对应的灰度。
同时使用rgb的编码一样可以得到黑白照片,但是二者各有优缺点。
灰度图像的黑白照片,由于每个像素只需要8bit的存储量,占用空间更小。
而rgb模式下的黑白照片虽说占用了3倍的空间,相对应的阴影细节却能更好的体现出来。
比特深度比特深度也就是通常买显示器会说到的“色域”。
8bit的深度就是说一个像素点对应的颜色,其rgb值中的每一个都分为256档。
当然除了8bit还有11bit,16bit之类的更宽的色域,相对应的图片的颜色会更丰富,更有层次感。
图像分辨率图像分辨率是一个用来描述图像质量,图像清晰程度的一个量。
其基本概念是指每一平方英寸中有多少个像素点,单位就是人们经常提到的dpi。
而整个图像的像素个数就是由图像本身的宽、高以及图像分辨率来共同确定的。
图像直方图图像直方图是对图像曝光程度以及颜色的一种特别的表现方式。
在灰度图像中,其横坐标就是256个灰度档,而其纵坐标就是整个图像中某一灰度档对应的相对像素数量。
在rgb图像中也同理,只不过每个单独的原色会有其单独的直方图。
如果图像直方图中某一位置出现峰值,就说明这个强度的像素点最多。
如果在横轴最左端或最右端出现峰值,则说明画面过曝或过暗,损坏无法修复。
Bayer Filter的工作原理Bayer Filter通常翻译为拜耳过滤器或拜耳滤色器,现在的数字图像采集设备基本上都是用的这种原理。
由于要同时采集rgb信息,平面上均匀分布着3种采集单元,分别对应着rgb三原色。
每个单元由一片或红或绿或蓝的玻璃和可以感受光强的传感器构成,光线通过彩色玻璃,对应颜色的光线就会照射到传感器上,待曝光结束后,对传感器的读数进行计算,就可以还原某一像素上对应的rgb值构成其采集到的颜色,所有单元同理。
此外,由于两个单元之间有微小的缝隙,会有部分光无法直接被传感器利用。
数字图像处理2-真彩色,灰度图像,索引色图像等的相互转化
timg 真彩色timg1 灰度图像timg2 索引色图像(64色)timg3 二值图像(阈值为0.5)这里从网上找到了timg真彩色图像作为本次作业中进行数字处理的图像。
首先在ps中调整了图像模式,并进行了另存为,生成了timg1与timg2,又在MATLAB中将灰度图像转化为了二值图像timg3,其中阈值为0.5。
这一步操作的代码如下:A = imread('timg1.jpg');B = im2bw(A, 0.5);imshow(B)imwrite(B,'timg3.jpg');随后我们来对每个图像imread的返回值进行观察。
对于timg处理的程序如下:A = imread('timg.jpg');disp(A);whos Aimshow(A)由于disp显示数据过多,这里不放原始数据了。
其具体内容为3个数组,每个数组都是320*200的,分别代表图片中每个像素的rgb值。
而whos语句显示出的内容如下:Bytes Class Name Size192000 uint8A 200x320x3其中200*320*3说明图像像素为200*320而且为rgb格式,有3个矩阵。
192000为图片大小,而其rgb值是用unit8即8位无符号整数存储,0-255的值代表了某一点像素某一颜色分量的强度。
同理,若将上述程序中的timg改为timg1灰度图像,显示出来的矩阵则只有一个,大小仍为200*320但是每个点的数值则代表对应像素的灰度值。
whos语句显示出的内容如下:Name SizeBytes Class64000 u int8A 200x320由于灰度图像只需要存储灰度而不是rgb3个分量,其大小便没有最后的*3,因此其大小也只为timg的1/3。
对于索引图进行的操作与其他图像不同,由于其本身存储的是索引值,需要导入索引表才能还原原本的图像,因此程序如下:[IM, map] = imread('timg2.png','png');disp(IM);IMrgb(:,:,:) = ind2rgb(IM,map);whos IMrgbimshow(IMrgb)这里如果直接imshow原本图像的话会根据灰度图像的方式显示错误的图像,因此采用了一个ind2rgb函数通过之前导入的索引表和索引值矩阵将图像恢复为rgb图像矩阵。
数字图像处理 第4章 色彩模型及转换
实际上:不同比例的油墨三原色的组合可以在
标准胶印中产生一个中性灰
C:85%
M:82%
Y:78%
C:34%、
M:25%、
2020/9/23
Y:24%
32
印刷灰平衡:指黄品青三色油墨按不同网点面 积率配比在印刷品上生成中性灰
◎彩色构成 所有的色调都由青、品、黄三原色组成
◎底色去除UCR:一部分非彩色成分由黑色取代
色域映射算法应满足以下基本原则:
◎保持彩色图像的色调不变,即色相角不能偏移
◎保持最大的明度对比度。
◎202饱0/9/2和3 度的改变尽可能的小
36
2.RGB与HSI的色彩转换 ①RGB到HSI的颜色转换
红色=00或 3 60 0 当 BG
H 3600 - 当 BG
arccos
(R G) (R B)
道图像等。 2020/9/23
8
②色彩空间 对应着不同的色彩模型处理的色彩数据和文
件的集合 ③色彩模型与色彩空间之间的关系
色彩模型——呈色原理——确定的数值 色彩空间——呈色设备——不同的参数 色彩空间的选择和设置是色彩处理的基础
2.RGB色彩模型
基于自然界中3种原色光的混合原理,将红 、绿 和蓝3种原色按照从0(黑)到255(白色)的亮 度202值0/9/23在每个色阶中分配,从而指定其色彩的算法9
7
二、色彩模型与色彩空间
1.概念 ①色彩模式(颜色模型) :
用数值表示颜色的一种算法
确定图像中能显示的颜色数、影响图像的通
道数和文件大小 光谱数据——可见光谱图像
调色板数据——索引彩色图像 常用的图像色彩模式有:
二值图像、灰度图像、多色调图像、索引彩色
数字图像处理入门—直方图修正和彩色变换
数字图像处理入门—直方图修正和彩色变换这次,我们主要和调色板打交道。
先从最简单的反色讲起。
1. 反色(invert)反色就是形成底片效果。
如下图所示,图2为图1反色后的结果图1. 原图图2. 图1反色后的结果反色有时是很有用的,比如说,图1中黑色区域占绝大多数,这样打印起来很费墨,我们可以先进行反色处理再打印。
反色的实际含义是将R,G,B值反转。
若颜色的量化级别是256,则新图的R,G,B值为255减去原图的R,G,B值。
这里针对的是所有图,包括真彩图,带调色板的彩色图(又称为伪彩色图),和灰度图。
针对不同种类有不同的处理。
先看看真彩图。
我们知道真彩图不带调色板,每个像素用3个字节,表示R,G,B三个分量。
所以处理很简单,把反转后的R,G,B值写入新图即可。
再来看看带调色板的彩色图,我们知道位图中的数据只是对应调色板中的一个索引值,我们只需要将调色板中的颜色反转,形成新调色板,而位图数据不用动,就能够实现反转。
灰度图是一种特殊的伪彩色图,只不过调色板中的R,G,B值都是一样的而已。
所以反转的处理和上面讲的一样。
这里,我想澄清一个概念。
过去我们讲二值图时,一直都说成黑白图。
二值位图一定是黑白的吗?答案是不一定。
我们安装Windows95时看到的那幅setup.bmp是由蓝色和黑色组成的,但它实际上是二值图。
原来,它的调色板中的两种颜色是黑与蓝,而不是黑与白。
所以说二值图也可以是彩色的,只不过一般情况下是黑白图而已。
实现反色的源程序2. 彩色图转灰度图(color to grayscale)我们在第二讲时提到了YUV的颜色表示方法,知道在这种表示方法中,Y分量的物理含义就是亮度,它含了灰度图的所有信息,只用Y分量就完全能够表示出一幅灰度图来。
YUV和RGB之间有着如下的对应关系。
我们利用上式,根据R,G,B的值求出Y值后,将R,G,B值都赋值成Y,就能表示出灰度图来,这就是彩色图转灰度图的原理。
先看看真彩图。
数字图像处理实验报告图像增强处理与几何变换
实验图像增强处理与几何变换一、实验目的利用Matlab图像处理工具箱中的函数实现图像点处理、空间域平滑和锐化处理、彩色图像处理、几何处理,巩固其原理与计算方法学习,深化课程理论认知。
二、实验内容1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;2、图像均值滤波和中值滤波、图像锐化处理;3、图像几何变换处理;4、图像彩色合成和彩色变换处理;三、实验步骤1、图像点处理:灰度变换、直方图均衡化和直方图规定处理;1.1图像的灰度变换启用MATLAB,输入以下代码运行I= imread('cameraman-8.bmp','bmp');figure; subplot(2,2,1), imshow(I);%获取图像直方图subplot(2,2,2),imhist(I);[counts1,x1] = imhist(I);%观察Counts,x的值subplot(2,2,3),stem(x1,counts1);%图像灰度变换J=imadjust(I,[0.1 0.7],[0.0 0.9]);subplot(2,2,4), imshow (J);%对比灰度变换前后的图像及其直方图figure;subplot(2,3,1),imshow(I);subplot(2,3,2),imshow(J);subplot(2,3,4),imhist(I);subplot(2,3,5),imhist(J);[counts2,x2] = imhist(J);subplot(2,3,6), stem(x2,counts2);图 1.1.1图 1.1.21.2图像直方图均衡化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp') ;%直方图均衡化处理J=histeq(I) ;%对比均衡化处理前后的图像及其直方图figure(1),subplot(2,2,1),imshow(I),subplot(2,2,2),imshow(J); figure(1),subplot(2,2,3),imhist(I),subplot(2,2,4),imhist(J);图 1.2 1.3直方图规定化启用MATLAB,输入以下代码运行I1=imread('TM5.bmp','bmp');I2=imread('TM3.bmp','bmp');%直方图规定化处理K1=histeq(I1,imhist(I2));%对比规定化处理前后的图像及其直方图figure;subplot(3,2,1),imshow(I1);subplot(3,2,2), imhist(I1);subplot(3,2,3),imshow(I2);subplot(3,2,4), imhist(I2);subplot(3,2,5),imshow(K1);subplot(3,2,6), imhist(K1);图 1.32、图像空间域平滑2.1 用均值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp');J=imnoise(I,'gaussian'); %添加高斯噪声K=imnoise(I,'salt & pepper'); %添加椒盐噪声M=imnoise(I,'speckle'); %添加乘性噪声H=ones(3,3)/9; %3*3的均值去噪模板%滤波去噪处理I1=imfilter(I,H);J1=imfilter(J,H);K1=imfilter(K,H);M1=imfilter(M,H) ;%对比线性滤波去噪处理前后的图像figure;subplot(2,4,1),imshow(I);title('原图');subplot(2,4,2),imshow(J); title('高斯噪声图像'); subplot(2,4,3),imshow(K); title('椒盐噪声图像'); subplot(2,4,4),imshow(M); title('乘性噪声图像'); subplot(2,4,6),imshow(J1); title('高斯噪声滤波图像'); subplot(2,4,7),imshow(K1); title('椒盐噪声滤波图像'); subplot(2,4,8),imshow(M1) ; title('乘性噪声滤波图像') ; 输出图像如下图 2.12.2 用中值滤波器实现图像空间域的平滑启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp');I1=imnoise(I,'gaussian');I2=imnoise(I,'salt & pepper',0.02);I3=imnoise(I,'speckle');%3×3中值滤波模板J=medfilt2(I,[3,3]);J1=medfilt2(I1,[3,3]);J2=medfilt2(I2,[3,3]);J3=medfilt2(I3,[3,3]);figure,subplot(2,4,1),imshow(I) ; title('原图') ;subplot(2,4,2),imshow(I1) ; title('添加高斯噪声') ;subplot(2,4,3),imshow(I2) ; title('添加椒盐噪声') ;subplot(2,4,4),imshow(I3) ; title('添加乘性噪声') ;subplot(2,4,6),imshow(J1) ;title('高斯噪声3*3中值滤波') ; subplot(2,4,7),imshow(J2) ;title('椒盐噪声3*3中值滤波') ; subplot(2,4,8),imshow(J3) ;title('乘性噪声3*3中值滤波') ;K=medfilt2(I, [5,5]); %5×5中值滤波模板K1=medfilt2(I1,[5,5]);K2=medfilt2(I2,[5,5]);K3=medfilt2(I3,[5,5]);figure;subplot(2,2,1),imshow(K); title('原图5*5中值滤波'); subplot(2,2,2),imshow(K1) ; title('高斯噪声5*5中值滤波') ; subplot(2,2,3),imshow(K2); title('椒盐噪声5*5中值滤波'); subplot(2,2,4),imshow(K3) ; title('乘性噪声5*5中值滤波'); 输出结果如下图 2.2.1图 2.2.22.3 图像空间域锐化启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp','bmp')H=fspecial('sobel')%用sobel算子做模板%锐化处理J=imfilter(I,H)%锐化处理前后图像对比figure,subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(J); 输出图像如下图 2.33、图像几何变换3.1 缩放启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%放大图像J=imresize(I,2) ;%缩小图像K=imresize(I,0.5) ;%图像对比figure(1),subplot(),imshow(I),title('原图'),figure(2),subplot(),imshow(J),title('放大两倍的图'),figure(3),subplot(),imshow(K),title('缩小0.5倍的图') ;输出图像如下图 3.1.1 图3.1.2图 3.1.33.2旋转启用MATLAB,输入以下代码运行I=imread('cameraman-8.bmp', 'bmp') ;%旋转图像M=imrotate(I,45) ;%图像对比figure;subplot(1,2,1),imshow(I),subplot(1,2,2),imshow(M) ;输出图像如下图 3.24、彩色图像处理4.1彩色合成启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');J1=I; J2=I;J3=I; J4=I;J5=I;%改变J1、J2、J3、J4、J5中的波段次序,组合成新的波段合成J1(:,:,1)=I(:,:,2); J1(:,:,2)=I(:,:,3); J1(:,:,3)=I(:,:,1) ;J2(:,:,1)=I(:,:,1); J2(:,:,2)=I(:,:,3); J2(:,:,3)=I(:,:,2) ;J3(:,:,1)=I(:,:,2); J3(:,:,2)=I(:,:,1); J3(:,:,3)=I(:,:,3) ;J4(:,:,1)=I(:,:,3); J4(:,:,2)=I(:,:,2); J4(:,:,3)=I(:,:,1) ;J5(:,:,1)=I(:,:,3); J5(:,:,2)=I(:,:,1); J5(:,:,3)=I(:,:,2) ;%对比原图像I与新图像J1、J2、J3、J4、J5的彩色差异,理解假彩色合成figure,subplot(2,3,1),imshow(I),title('原图');subplot(2,3,2),imshow(J1),title('变换一') ;subplot(2,3,3),imshow(J2),title('变换二') ;subplot(2,3,4),imshow(J3),title('变换三') ;subplot(2,3,5),imshow(J4),title('变换四') ;subplot(2,3,6),imshow(J5),title('变换五');输出图像如下图4.1 4.2彩色变换启用MATLAB,输入以下代码运行I=imread('peppers.bmp','bmp');HSV=rgb2hsv(I) ;RGB=hsv2rgb(HSV) ;%对比彩色变换前后的图像figure;subplot(1,3,1),imshow(I),title('原图'),subplot(1,3,2),imshow(HSV),title('HSV图像'); subplot(1,3,3),imshow(RGB),title('RGB图像') ;输出结果如下图 4.2四、实验算法要点总结1、图像点处理直方图修正法通常分为直方图均衡化和直方图规定化两类2、图像均值滤波和中值滤波、图像锐化处理3、图像几何变换处理4、图像彩色合成和彩色变换处理通过映射函数将彩色图像或多光谱图像变换成新的三基色分量线性假彩色映射表示为:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六彩色图像得处理
一、实验目得
1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。
2、了解RGB图像与不同颜色空间之间得转换.
3、掌握彩色图像得直方图处理方法。
二、实验内容及步骤
1、RGB图像与索引图像、灰度级图像得转换。
close all
RGB=imread('flowers、tif’);
[R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色得索引图像figure
imshow(R_i,map)
[R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像
figure
imshow(R_g)
思考:
将RGB图像’flowers、tif’分别转换为32色、256色、1024色索引图像,就是否调色板所表示得颜色值越多图像越好?
close all
RGB=imread('flowers、tif’);
[R_i1,map]=rgb2ind(RGB,8);%RGB图像转换为8色得索引图像[R_i2,map]=rgb2ind(RGB,32);%RGB图像转换为32色得索引图像
[R_i3,map]=rgb2ind(RGB,256);%RGB图像转换为256色得索引图像
[R_i4,map]=rgb2ind(RGB,1024);%RGB图像转换为1024色得索引图像
Subplot(221);imshow(R_i1,map);title(’8色得索引图像');
Subplot(222);imshow(R_i2,map);title(’32色得索引图像');
Subplot(223);imshow(R_i3,map);title('256色得索引图像’);
Subplot(224);imshow(R_i4,map);title('1024色得索引图像
');
结论:随着索引值得增加图像得质量也有增加,更加清晰,色彩也更加鲜明.但不就是不就是颜色值越多越好.当索引值过高时,会出现无法识别而致模糊得情况出现。
2、RGB图像与不同颜色空间得转换。
(1) RGB与HSI颜色空间得转换
HSI应用于彩色图像处理。
实验六文件夹中rgb2hsi()函数将RGB颜色空间转换为HSI空间并显示各分量,hsi2rgb()函数就是将HSI颜色空间转换为RGB颜色空间。
close all
x=imread(’flowers、tif');
figure
imshow(x)
title('RGB’)
x_hsi=rgb2hsi(x);%RGB颜色空间转换成HSI颜色空间,
%并显示H、S、I各分量
figure
imshow(x_hsi)
title('HSI')
x_h_r=hsi2rgb(x_hsi); figure
imshow(x_h_r)
title('HSI——>RGB')
(2)RGB与CMY颜色空间转换
CMY颜色空间运用在大多数在纸上沉积彩色颜料得设备,如彩色打印机与复印机。
CMY(青、深红、黄)就是RGB颜色空间得补色。
close all
x=imread('flowers、tif');
X =im2double(x);
R=X(:,:,1);
G=X(:,:,2);
B=X(:,:,3);
C=1-R;
M=1-G;
Y=1—B;
R1=1—C;
G1=1-M;
B1=1-Y;
CMY=cat(3,C,M,Y);
RGB1=cat(3,R,G,B);
subplot(1,3,1),imshow(X);title('RGB') ;
subplot(1,3,2),imshow(CMY);title(’CMY') ;
subplot(1,3,3),imshow(RGB1);title('CMY—-—>RGB') ;
思考:
如何将RGB图像分解出其R、G、B颜色分量?结果类似下图. close all
x=imread(’flowers、tif');
X = im2double(x);
R=X(:,:,1);
G=X(:,:,2);
B=X(:,:,3);
C1=R;
M1=G-G;
Y1=B-B;
C2=R-R;
M2=G;
Y2=B-B;
C3=R—R;
M3=G-G;
Y3=B;
R=cat(3,C1,M1,Y1);
G=cat(3,C2,M2,Y2);
B=cat(3,C3,M3,Y3);
subplot(1,3,1),imshow(R);title('R');
subplot(1,3,2),imshow(G);title(’G’);
subplot(1,3,3),imshow(B);title(’B');
3、彩色图像得直方图处理
(1)在HSI颜色空间对I(强度)分量进行调整及直方图均衡化。
close all
x=imread('flowers、tif’);
figure
imshow(x)
title(’RGB’)
x_hsi=rgb2hsi(x);% RGB颜色空间转换成HSI颜色空间,
%并显示H、S、I各分量
h=x_hsi(:,:,1);
s=x_hsi(:,:,2);
i=x_hsi(:,:,3);
i1=imadjust(i,[01],[],0、6);%对I分量进行灰度值调整,使图像更亮
x_hsi=cat(3,h,s,i1);
x_h_r=hsi2rgb(x_hsi);% HSI空间转换为RGB空间
figure
imshow(x_h_r)
title(’imadjust(i,[],[],0、6)')
i2=histeq(i); %对I分量进行直方图均衡化,加强对比度
x_hsi=cat(3,h,s,i2);
x_h_r=hsi2rgb(x_hsi); %HSI空间转换为RGB空间
figure
imshow(x_h_r)
title(’histeq(i)')
(2) RGB颜色空间对全彩色进行直方图处理
close all
x=imread('flowers、tif');
figure
imshow(x)
title('RGB’)
r=x(:,:,1); g=x(:,:,2);b=x(:,:,3);
r1=imadjust(r,[01],[],0、6);%对R分量进行灰度值调整
g1=imadjust(g,[0 1],[],0、6); %对G分量进行灰度值调整b1=imadjust(b,[0 1],[],0、6); %对B分量进行灰度值调整
x1=cat(3,r1,g1,b1);
figure; imshow(x1)
title(’imadjust(r/g/b,[],[],0、6)')
r2=histeq(r);%直方图均衡化
g2=histeq(g);
b2=histeq(b);
x2=cat(3,r2,g2,b2);%处理后得R、G、B分量合并回RGB图像figure;imshow(x2)
title(’histeq(r/g/b)')
思考:
ﻩ参考彩色图像得直方图处理方法,分别对RGB图像’flowers、tif’进行尺寸为5*5得均值平滑滤波及拉普拉斯锐化。
(在HIS空间或RGB空间都可以)结果类似下图.
拉普拉斯算子:h=[ -1 -1 -1;
—1 8 —1;
-1 -1—1;];(1)5*5均值平滑滤波
close all;
x=imread('flowers、tif');
h=fspecial('average',5);
y=imfilter(x,h);
subplot(1,2,1);
imshow(x);title('RGB');
subplot(1,2,2);
imshow(y);title(’5*5 均值平滑滤波');
(2)拉普拉斯锐化
close all;
x=imread('flowers、tif');
h=[-1—1 -1;
-1 8 —1;
—1 —1—1;];
y=imfilter(x,h);
subplot(1,2,1);
imshow(x);title('RGB');
subplot(1,2,2);
imshow(y);title(’拉普拉斯滤波’);
三、实验报告
1、按照实验步骤做实验;
2、记录实验结果,并作出总结;
3、按照实验报告格式写出报告。
四、实验心得及机会
通过这次实验,我学会并了解了许多有关数字图像处理方面得知识。
以前只就是瞧着课本上得内容学习,对很多知识只就是生分得了解,但就是不懂得如何应用,通过做实验,自己动手,对图像做一系列得处理与变换,体会到了各种参数对数字图像得影响。
通过此次实验也发现了自己得而许多问题,在对于MATLAB软件得应用上面我还有许多不足,尤其就是对如何编写M文件方面很难掌握,仍有待加强。