数字图像处理代码Ch5《彩色图像处理》
《数字图象处理》第09章彩色图像处理
图 9-6
HSI 调色板
第9章
彩色图像处理
HSI 模型与 RGB 模型之间可按下述方法相互转换。 (1) RGB 转换到 HSI 。首先,对取值范围为 [ 0 , 255 ]的 R 、 G 、 B 值按式 (9-5) 进行归一化处理, 得到 3 个[ 0 , 1 ]范围内的 r 、 g 、 b 值: R G r g R G B R G B
第9章
彩色图像处理
100Y L 25 Y 0 16
1 3
1 1 3 3 X Y a 500 X 0 Y0
(9-4)
1 1 3 3 Y Z b 500 Y0 Z 0
S s 100 I i 255
式中: X0 、 Y0 、 Z0 为标准白色对应的 X 、 Y 、 Z 值。
第9章
彩色图像处理
4. HSI 颜色模型 HSI 模型是美国色彩学家孟塞尔 (H.A.Munseu) 于 1915 年提出的,它反映了人的视觉系统感知彩色的方式,以色调 、饱和度和强度三种基本特征量来感知颜色。 色调 H(Hue) : 与光波的波长有关,它表示人的感官 对不同颜色的感受,如红色、绿色、蓝色等,它也可表示一 定范围的颜色,如暖色、冷色等。 饱和度 S(Saturation) : 表示颜色的纯度,纯光谱色是 完全饱和的,加入白光会稀释饱和度。饱和度越大,颜色看 起来就会越鲜艳,反之亦然。
第9章 9.1.2
彩色图像处理 颜色模型
为了科学地定量描述和使用颜色,人们提出了各种颜色 模型。目前常用的颜色模型按用途可分为三类: 计算颜色 模型、视觉颜色模型和工业颜色模型。 计算颜色模型用于进行有关颜色的理论研究。常见的 RGB 模型、 CIE XYZ 模型、 Lab 模型等均属于此类型。
数字图像处理_实验报告书(八)彩色图像处理
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程序,将一彩色图像在向量空间进行边缘检测,并观察其效果。
数字图像处理05_彩色图像处理
数字图像处理Ch05. 彩色图像处理Outline•概述•颜色理论–彩色视觉•颜色模型–工业模型–色度学模型–视觉模型•彩色图像处理–伪彩色图像处理–真彩色图像处理•为了简单起见,数字图像处理中的很多方法主要在灰度图像上做示例和推演。
•但是,在实际应用中,我们遇到更多的是彩色图像•彩色图像比灰度图像包含了更多的信息•对色彩进行感知也是人类视觉系统的一项固有的本领。
•随着电子技术、计算机技术的发展,彩色图像的记录设备和输出设备技术都非常成熟•彩色图像在印刷、多媒体、互联网等方面都已经称为主流。
•支持彩色图像处理的物质条件已经成熟,彩色图像处理技术的需求日益高涨。
•和灰度图像相比,彩色图像处理的首要问题是如何表达描述图像的颜色,即建立彩色模型。
•彩色图像处理技术:–伪彩色图像处理:•人对灰度辨别只有几十个级,却可辨别上千种色彩;•将灰度图转化为彩色图像可以提高人们对图像内容的观察效率–真彩色图像处理:•待处理的图像本身是用全彩传感器获得的•彩色图像对场景的描述能力更强,更复杂•彩色图像处理覆盖数字图像处理的各个方面:增强、滤波、分割、识别、压缩、水印。
颜色理论基础•光线没有颜色,只是某种功率频谱分布最早发现光的颜色秘密的是牛顿。
通过棱镜分光实验,牛顿发现白光是由不同颜色的光混合而成颜色理论•视觉的本领:将不同频率的电磁波感知为不同的颜色;•人的眼睛可以分辨几十种亮度,却可以分辨上千种颜色•除了光的颜色,人眼对物体的颜色的感知取决于物体反射光的特性。
如果物体对某些光谱反射比较多,则物体就呈现对应的颜色。
如果物体反射各种光的能力比较均衡,则物体呈白色颜色理论基础•彩色视觉:–物理成像过程–复杂的生理过程•人眼结构:–晶状体:强大的自动调焦能力–视网膜:人眼感知图像信号的窗口,分布着无数的感光细胞,其中可分为柱状细胞和锥状细胞•锥细胞:约6~7百万个–对颜色敏感,适应于强照度–又分为三种,分别对蓝色、红色、绿色敏感–细节分辨能力强,亮视觉•柱细胞:约7千万~1.5亿个–对颜色不敏感,适应于低照度–不能分辨色彩,只能分辨形状–响应快,角度宽–暗视觉•人眼有着非常大的亮度适应范围(10-19~110 lx):–仅仅靠瞳孔调节是远远不够的(瞳孔调节可以使光通量改变约20倍)–还需要靠两类细胞的转换来实现,大约需要30分钟完全适应。
数字图像处理实验八
数字图像处理实验实验八:彩色图像处理学院:信息工程学院姓名:学号:专业及班级:指导教师:一、实验目的使用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分量;根据各个分量图像的情况讨论该彩色图像的亮度、色调等性质。
彩色图像处理数字图像处理
– (3)相加混色和相减混色有不同的规律。
Grassman定律
• 指出了视觉对颜色的响应取决于红、绿、 蓝三输入量的代数和。
– (1)所有颜色都可以用相互独立的三基色混合得到; – (2)假如三基色的混合比相等,则色调和饱和度也相
•
C=RR0+GG0+BB0
(8.1)
– R、G、B为C的三刺激值(tristimulus values)
– (R0,G0,B0)称为原刺激值,是单位向量。
图8.2 颜色的向量表示与光谱三刺激值
(a)颜色的向量表示
(b)光谱三刺激值
8.1.3 光度学基本知识
• 光度学
– 光学中研究光的辐射、吸收、照射、反射、散射、漫 射等度量的学科
图8.4 图像的R、G、B分解
•
(a)原图像
(b)R分量
•
(c)G分量
(d)B分量图
8.2.2 Munsell模型
某个颜色可以唯一地用一个色调(H)、色纯度(C) 及亮暗值(V)的颜色片来表示,如图8.5所示。
色调沿圆周分成10个区域,其中5个是主色调,5个 是中间色调。
分别是红、红黄、黄、黄绿、绿、蓝绿、蓝、蓝紫、紫、 紫红。
第8章 彩色图像处理
内容提要:
8.1 人类视觉与色度学基础
三基色原理、光度学基本知识
8.2 颜色空间的表示及其转换
RGB模型、Munsell模型、HSV模型、HSI模型、YUV模型
RGB与HSV空间的相互转换 RGB与YUV空间的相互转换 RGB与HSI空间的相互转换
8.2 颜色空间的量化
《数字图像处理》彩色图像处理
数字图像处理----彩色图像处理杨淑莹教授天津理工大学计算机与通信工程学院彩色图像处理彩色图像的灰度化处理 彩色图像马赛克处理 彩色图像的浮雕处理彩色图像的灰度化处理1. 理论分析(1) BMP位图文件类型(2) 24位真彩色图像文件结构(3) 彩色图像的灰度化处理方法2. 理论验证(1)UltraEdit软件对真彩色文件数据剖析(2) 教学软件验证3. 实现步骤4. 编程代码(1) CDib类库的建立(2) CDib派生类的建立----彩色图像处理(3) 灰度化处理代码1.24位真彩色图像(1)每一像素由RGB三个分量组成。
(2)每个分量各占8位,取值范围为0~255,每个像素24位。
(207,137,130) (220,179,163) (215,169,161) (210,179,172) (210,179,172) (207,154,146) (217,124,121) (215,169,161) (216,179,170) (216,179,170) (207,137,120) (159, 51, 71) (213,142,135) (216,179,170) (221,184,170) (190, 89, 89) (204,109,113) (204,115,118) (216,179,170) (220,188,176) (190, 77, 84) (206, 95, 97) (217,113,113) (189, 85, 97) (222,192,179) (150, 54, 71) (177, 65, 73) (145, 39, 65) (150, 47, 67) (112, 20, 56)(136, 38, 65) (112, 20, 56) (112, 20, 56) (109, 30, 65) (112, 20, 56) ( 95, 19, 64)(136, 38, 65) ( 91, 11, 56) (113, 25, 60) (103, 19, 59) ( 81, 12, 59) (126, 62, 94)(138, 46, 71) (103, 19, 59) (158, 65, 83) (124, 40, 70) (145, 62, 79) (130, 46, 73)2.理论分析--24位真彩色图像文件结构位图像素数据位图信息头结构BITMAPINFOHEADER 位图文件头结构BITMAPFILEHEADER 位图像素数据颜色表位图信息头结构BITMAPINFOHEADER位图文件头结构BITMAPFILEHEADER8位位图文件结构24位位图文件结构1)BMP文件头结构typedef struct tagBITMAPFILEHEADER{WORD bfType; // BM,2byteDWORD bfSize;// 文件大小,4byteWORD bfReserved1;// 0WORD bfReserved2;// 0DWORD bfOffBits; // 位图数据的起始位置,}TMAPFILEHEADER;//(14byte)2)位图信息头结构typedef struct tagBITMAPINFOHEADER{DWORD biSize; // biSize=40byteLONG biWidth;LONG biHeight;WORD biPlanes; // 1WORD biBitCount;// 每个像素所需的位数,24 DWORD biCompression; // 位图压缩类型,0DWORD biSizeImage; // 位图的大小,LONG biXPelsPerMeter; // 0LONG biYPelsPerMeter; // 0DWORD biClrUsed; // 颜色数0DWORD biClrImportant; // 重要的颜色数0} BITMAPINFOHEADER;3)位图像素数据(207,137,130) (220,179,163) (215,169,161) (210,179,172) (210,179,172) (207,154,146) (217,124,121) (215,169,161) (216,179,170) (216,179,170) (207,137,120) (159, 51, 71) (213,142,135) (216,179,170) (221,184,170) (190, 89, 89) (204,109,113) (204,115,118) (216,179,170) (220,188,176) (190, 77, 84) (206, 95, 97) (217,113,113) (189, 85, 97) (222,192,179) (150, 54, 71) (177, 65, 73) (145, 39, 65) (150, 47, 67) (112, 20, 56) (136, 38, 65) (112, 20, 56) (112, 20, 56) (109, 30, 65) (112, 20, 56) ( 95, 19, 64) (136, 38, 65) ( 91, 11, 56) (113, 25, 60) (103, 19, 59) ( 81, 12, 59) (126, 62, 94) (138, 46, 71) (103, 19, 59) (158, 65, 83) (124, 40, 70) (145, 62, 79) (130, 46, 73)1.理论分析--彩色图像的灰度化处理使颜色的R、G、B分量值相等。
数字图像处理之彩色图像的处理
实验六彩色图像的处理一、实验目的1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数;2、了解RGB图像与不同颜色空间之间的转换;3、掌握彩色图像的直方图处理方法;二、实验内容及步骤1、RGB图像与索引图像、灰度级图像的转换;close allRGB=imread'';R_i,map=rgb2indRGB,8;%RGB图像转换为8色的索引图像figureimshowR_i,mapR_g=rgb2grayRGB;%RGB图像转换为灰度级图像figureimshowR_g思考:将RGB图像’’分别转换为32色、256色、1024色索引图像,是否调色板所表示的颜色值越多图像越好RGB=imread'';R_i1,map=rgb2indRGB,8;%RGB图像转换为8色的索引图像R_i2,map=rgb2indRGB,32;%RGB图像转换为32色的索引图像R_i3,map=rgb2indRGB,256;%RGB图像转换为256色的索引图像R_i4,map=rgb2indRGB,1024;%RGB图像转换为1024色的索引图像Subplot221;imshowR_i1,map;title'8色的索引图像';Subplot222;imshowR_i2,map;title'32色的索引图像';Subplot223;imshowR_i3,map;title'256色的索引图像';Subplot224;imshowR_i4,map;title'1024色的索引图像';结论:随着索引值的增加图像的质量也有增加,更加清晰,色彩也更加鲜明;但不是不是颜色值越多越好;当索引值过高时,会出现无法识别而致模糊的情况出现; 2、RGB图像与不同颜色空间的转换;1 RGB与HSI颜色空间的转换HSI应用于彩色图像处理;实验六文件夹中rgb2hsi 函数将RGB颜色空间转换为HSI空间并显示各分量, hsi2rgb 函数是将HSI颜色空间转换为RGB颜色空间;close allfigureimshowxtitle'RGB'x_hsi=rgb2hsix;% RGB颜色空间转换成HSI颜色空间,% 并显示H、S、I各分量figureimshowx_hsititle'HSI'x_h_r=hsi2rgbx_hsi;figureimshowx_h_rtitle'HSI-->RGB'2RGB与CMY颜色空间转换CMY颜色空间运用在大多数在纸上沉积彩色颜料的设备,如彩色打印机和复印机; CMY青、深红、黄是RGB颜色空间的补色;close allx=imread'';X = im2doublex;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=cat3,C,M,Y;RGB1=cat3,R,G,B;subplot1,3,1,imshowX;title'RGB' ;subplot1,3,2,imshowCMY;title'CMY' ;subplot1,3,3,imshowRGB1;title'CMY--->RGB' ;思考:如何将RGB图像分解出其R、G、B颜色分量结果类似下图; close allx=imread'';X = im2doublex;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=cat3,C1,M1,Y1;G=cat3,C2,M2,Y2;B=cat3,C3,M3,Y3;subplot1,3,1,imshowR;title'R' ;subplot1,3,2,imshowG;title'G' ;subplot1,3,3,imshowB;title'B' ;3、彩色图像的直方图处理1在HSI颜色空间对I强度分量进行调整及直方图均衡化;close allx=imread'';figureimshowxtitle'RGB'x_hsi=rgb2hsix;% RGB颜色空间转换成HSI颜色空间,% 并显示H、S、I各分量h=x_hsi:,:,1;s=x_hsi:,:,2;i=x_hsi:,:,3;i1=imadjusti,0 1,,;%对I分量进行灰度值调整,使图像更亮x_hsi=cat3,h,s,i1;x_h_r=hsi2rgbx_hsi; % HSI空间转换为RGB空间figureimshowx_h_rtitle'imadjusti,,,'i2=histeqi; %对I分量进行直方图均衡化,加强对比度x_hsi=cat3,h,s,i2;x_h_r=hsi2rgbx_hsi; % HSI空间转换为RGB空间figureimshowx_h_rtitle'histeqi'2 RGB颜色空间对全彩色进行直方图处理close allx=imread'';figureimshowxtitle'RGB'r=x:,:,1; g=x:,:,2; b=x:,:,3;r1=imadjustr,0 1,,;%对R分量进行灰度值调整g1=imadjustg,0 1,,; %对G分量进行灰度值调整b1=imadjustb,0 1,,; %对B分量进行灰度值调整x1=cat3,r1,g1,b1;figure; imshowx1title'imadjustr/g/b,,,'r2=histeqr; %直方图均衡化g2=histeqg;b2=histeqb;x2=cat3,r2,g2,b2;%处理后的R、G、B分量合并回RGB图像figure; imshowx2title'histeqr/g/b'思考:参考彩色图像的直方图处理方法,分别对RGB图像'' 进行尺寸为55的均值平滑滤波及拉普拉斯锐化;在HIS空间或RGB空间都可以结果类似下图;拉普拉斯算子:h= -1 -1 -1;-1 8 -1;-1 -1 -1;;155 均值平滑滤波close all;x=imread'';h=fspecial'average',5;y=imfilterx,h;subplot1,2,1;imshowx;title'RGB';subplot1,2,2;imshowy;title'55 均值平滑滤波';2拉普拉斯锐化close all;x=imread'';h= -1 -1 -1;-1 8 -1;-1 -1 -1;;y=imfilterx,h;subplot1,2,1;imshowx;title'RGB';subplot1,2,2;imshowy;title'拉普拉斯滤波';三、实验报告1、按照实验步骤做实验;2、记录实验结果,并作出总结;3、按照实验报告格式写出报告;四、实验心得及机会通过这次实验,我学会并了解了许多有关数字图像处理方面的知识;以前只是看着课本上的内容学习,对很多知识只是生分的了解,但是不懂得如何应用,通过做实验,自己动手,对图像做一系列的处理和变换,体会到了各种参数对数字图像的影响;通过此次实验也发现了自己的而许多问题,在对于MATLAB软件的应用上面我还有许多不足,尤其是对如何编写M文件方面很难掌握,仍有待加强;。
基于MATLAB的数字图像处理的彩色图像处理
南京信息工程大学滨江学院基于MATLAB的数字图像处理的彩色图像处理专业:电子信工程学生姓名:***指导教师:***完成时间:2022年4月26日摘要自20世纪70年代以来,由于数字技术和计算机技术的迅猛发展,给数字图像处理(Digital Image Processing)提供了先进的技术手段。
图像科学从信息处理、自动控制系统理论、计算机科学、数据通信等学科中脱颖而出,成为研究图像信息的获取、传输、存储、变换、显示、理解和综合利用的新兴学科。
数字图像处理在实际中得到了广泛应用。
特别是在遥感、航空航天、通信、生物和医学、安全监控、工业生产、视频和多媒体、机器人视觉、物理和化学分析、公安和军事等领域.它在国家安全、经济发展和日常生活中已经起到越来越重要的作用。
由于彩色图像提供了比灰度图像更为丰富的信息,因此彩色图像处理正受到人们越来越多的关注。
关键字颜色空间彩色图像分割彩色空间转换彩色变换目录引言 (1)1 MATLAB图像处理工具箱及数字图像处理基本过程简介 (2)1.1 常用图像操作 (2)1.2 图像增强功能 (2)1.3边缘检测和图像分割功能 (3)1,4图像变换功能 (4)2 MATLAB中彩色图像表示 (4)2.1RGB图像 (4)2.2索引图像 (6)2.3处理RGB和索引图像 (6)3 彩色图像处理 (6)3.1读入一幅RGB图像,将其分别转换到CMY空间、HSI空间并显示 (6)3.2彩色空间滤波 (8)参考文献 (9)致谢 (9)引言MATLAB 语言是由美国MathWorks 公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,是近几年来在国内外广泛流行的一种可视化科学计算软件。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征。
MathWorks 公司针对不同领域的应用,推出了信号处理、控制系统、神经网络、图像处理、小波分析、鲁棒控制、非线性系统控制设计、系统辨识、优化设计、统计分析、财政金融、样条、通信等30 多个具有专门功能的工具箱,这些工具箱是由该领域内的学术水平较高的专家编写的,无需用户自己编写所用的专业基础程序,可直接对工具箱进行运用。
数字图像处理代码大全
1.图像反转MATLAB 程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1);% 图像反转线性变换H=uint8(J);subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(H);2.灰度线性变换MATLAB 程序实现如下:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title(' 原始图像 ');axis([50,250,50,200]);axis on;% 显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title(' 灰度图像 ');axis([50,250,50,200]);axis on;% 显示坐标系J=imadjust(I1,[0.1 0.5],[]); %局部拉伸,把[0.1 0.5]内的灰度拉伸为[0 1]subplot(2,2,3),imshow(J);title(' 线性变换图像 [0.1 0.5]');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系K=imadjust(I1,[0.30.7],[]);% 局部拉伸,把[0.30.7] 内的灰度拉伸为 [0 1]subplot(2,2,4),imshow(K);title(' 线性变换图像 [0.3 0.7]');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系3. 非线性变换MATLAB 程序实现如下:I=imread('xian.bmp');I1=rgb2gray(I);subplot(1,2,1),imshow(I1);title(' 灰度图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系J=double(I1);J=40*(log(J+1));H=uint8(J);subplot(1,2,2),imshow(H);title(' 对数变换图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系4. 直方图均衡化MATLAB 程序实现如下:I=imread('xian.bmp');I=rgb2gray(I);figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);I1=histeq(I);figure;subplot(2,2,1);imshow(I1);subplot(2,2,2);imhist(I1);5.线性平滑滤波器用 MATLAB 实现领域平均法抑制噪声程序:I=imread('xian.bmp');subplot(231)imshow(I)title(' 原始图像 ')I=rgb2gray(I);I1=imnoise(I,'salt & pepper',0.02);subplot(232)imshow(I1)title(' 添加椒盐噪声的图像')k1=filter2(fspecial('average',3),I1)/255;% 进行 3*3 模板平滑滤波k2=filter2(fspecial('average',5),I1)/255;% 进行 5*5 模板平滑滤波k3=filter2(fspecial('average',7),I1)/255;% 进行 7*7 模板平滑滤波k4=filter2(fspecial('average',9),I1)/255;% 进行 9*9 模板平滑滤波subplot(233),imshow(k1);title('3*3 模板平滑滤波 ');subplot(234),imshow(k2);title('5*5 模板平滑滤波 ');subplot(235),imshow(k3);title('7*7 模板平滑滤波 ');subplot(236),imshow(k4);title('9*9 模板平滑滤波 ');6.中值滤波器用 MATLAB 实现中值滤波程序如下:I=imread('xian.bmp');I=rgb2gray(I);J=imnoise(I,'salt&pepper',0.02);subplot(231),imshow(I);title(' 原图像 ');subplot(232),imshow(J);title(' 添加椒盐噪声图像'); k1=medfilt2(J);% 进行 3*3 模板中值滤波k2=medfilt2(J,[5,5]);% 进行 5*5 模板中值滤波k3=medfilt2(J,[7,7]);% 进行 7*7 模板中值滤波k4=medfilt2(J,[9,9]);% 进行 9*9 模板中值滤波subplot(233),imshow(k1);title('3*3 模板中值滤波 '); subplot(234),imshow(k2);title('5*5 模板中值滤波'); subplot(235),imshow(k3);title('7*7 模板中值滤波 '); subplot(236),imshow(k4);title('9*9 模板中值滤波 '); 7.用 Sobel 算子和拉普拉斯对图像锐化:I=imread('xian.bmp');subplot(2,2,1),imshow(I);title(' 原始图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I1=im2bw(I);subplot(2,2,2),imshow(I1);title(' 二值图像');axis([50,250,50,200]);grid on; axis on;% 显示网格线%显示坐标系H=fspecial('sobel'); J=filter2(H,I1);% 选择 sobel 算子% 卷积运算subplot(2,2,3),imshow(J);title('sobel 算子锐化图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系h=[0 1 0,1 -4 1,0 1 0];% 拉普拉斯算子J1=conv2(I1,h,'same');% 卷积运算subplot(2,2,4),imshow(J1);title(' 拉普拉斯算子锐化图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系8.梯度算子检测边缘用 MATLAB 实现如下:I=imread('xian.bmp');subplot(2,3,1);imshow(I);title(' 原始图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I1=im2bw(I);subplot(2,3,2);imshow(I1);title(' 二值图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I2=edge(I1,'roberts');figure;subplot(2,3,3);imshow(I2);title('roberts算子分割结果');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I3=edge(I1,'sobel');subplot(2,3,4);imshow(I3);title('sobel算子分割结果 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I4=edge(I1,'Prewitt');subplot(2,3,5);imshow(I4);title('Prewitt算子分割结果 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系9.LOG 算子检测边缘用 MATLAB 程序实现如下:I=imread('xian.bmp');subplot(2,2,1);imshow(I);title(' 原始图像 ');I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title(' 灰度图像 ');I2=edge(I1,'log');subplot(2,2,3);imshow(I2);title('log 算子分割结果 '); 10.Canny 算子检测边缘用 MATLAB 程序实现如下:I=imread('xian.bmp'); subplot(2,2,1);imshow(I);title(' 原始图像 ')I1=rgb2gray(I);subplot(2,2,2);imshow(I1);title(' 灰度图像 ');I2=edge(I1,'canny'); subplot(2,2,3);imshow(I2);title('canny 算子分割结果 ');11. 边界跟踪(bwtraceboundary函数)clcclear allI=imread('xian.bmp');figureimshow(I);title('原始图像');I1=rgb2gray(I); threshold=graythresh(I1);% 将彩色图像转化灰度图像% 计算将灰度图像转化为二值图像所需的门限BW=im2bw(I1,threshold);% 将灰度图像转化为二值图像figureimshow(BW);title('二值图像');dim=size(BW);col=round(dim(2)/2)-90;% 计算起始点列坐标row=find(BW(:,col),1);% 计算起始点行坐标connectivity=8;num_points=180;contour=bwtraceboundary(BW,[row,col],'N',connectivity,num_p oints);%提取边界figureimshow(I1);hold on;plot(contour(:,2),contour(:,1), 'g','LineWidth' ,2); title(' 边界跟踪图像 ');12.Hough 变换I= imread('xian.bmp');rotI=rgb2gray(I);subplot(2,2,1);imshow(rotI);title(' 灰度图像 ');axis([50,250,50,200]);grid on;axis on;BW=edge(rotI,'prewitt');subplot(2,2,2);imshow(BW);title('prewitt算子边缘检测后图像');axis([50,250,50,200]);grid on;axis on;[H,T,R]=hough(BW);subplot(2,2,3);imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); title(' 霍夫变换图 ');xlabel('\theta'),ylabel('\rho');axis on , axis normal, hold on;P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2));y=R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P ,'FillGap',5,'MinLength',7); subplot(2,2,4);,imshow(rotI);title(' 霍夫变换图像检测');axis([50,250,50,200]);grid on;axis on;hold on;max_len=0;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);if(len>max_len)max_len=len;xy_long=xy;endendplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','cyan');13.直方图阈值法用 MATLAB 实现直方图阈值法:I=imread('xian.bmp');I1=rgb2gray(I);figure;subplot(2,2,1);imshow(I1);title(' 灰度图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;%显示坐标系[m,n]=size(I1);% 测量图像尺寸参数GP=zeros(1,256);% 预创建存放灰度出现概率的向量for k=0:255GP(k+1)=length(find(I1==k))/(m*n);% 计算每级灰度出现的概率,将其存入GP 中相应位置endsubplot(2,2,2),bar(0:255,GP ,'g')% 绘制直方图title(' 灰度直方图 ')xlabel(' 灰度值 ')ylabel(' 出现概率 ')I2=im2bw(I,150/255);subplot(2,2,3),imshow(I2);title(' 阈值 150 的分割图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I3=im2bw(I,200/255);%subplot(2,2,4),imshow(I3);title(' 阈值 200 的分割图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系14. 自动阈值法: Otsu 法用MATLAB 实现 Otsu 算法:clcclear allI=imread('xian.bmp');subplot(1,2,1),imshow(I);title(' 原始图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系level=graythresh(I);% 确定灰度阈值BW=im2bw(I,level);subplot(1,2,2),imshow(BW);title('Otsu 法阈值分割图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系15. 膨胀操作I=imread('xian.bmp');% 载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title(' 灰度图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系se=strel('disk',1);% 生成圆形结构元素I2=imdilate(I1,se);% 用生成的结构元素对图像进行膨胀subplot(1,2,2);imshow(I2);title(' 膨胀后图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系16. 腐蚀操作MATLAB 实现腐蚀操作I=imread('xian.bmp');% 载入图像I1=rgb2gray(I);subplot(1,2,1);imshow(I1);title(' 灰度图像 ')axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系se=strel('disk',1);% 生成圆形结构元素I2=imerode(I1,se);% 用生成的结构元素对图像进行腐蚀subplot(1,2,2);imshow(I2);title(' 腐蚀后图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系17.开启和闭合操作用 MATLAB 实现开启和闭合操作I=imread('xian.bmp');% 载入图像subplot(2,2,1),imshow(I);title(' 原始图像 ');axis([50,250,50,200]);axis on;% 显示坐标系I1=rgb2gray(I);subplot(2,2,2),imshow(I1);title(' 灰度图像');axis([50,250,50,200]);axis on;% 显示坐标系se=strel('disk',1);% 采用半径为1的圆作为结构元素I3=imclose(I1,se);% 闭合操作subplot(2,2,3),imshow(I2);title(' 开启运算后图像 ');axis([50,250,50,200]);axis on;% 显示坐标系subplot(2,2,4),imshow(I3);title(' 闭合运算后图像 ');axis([50,250,50,200]);axis on;% 显示坐标系18.开启和闭合组合操作I=imread('xian.bmp');% 载入图像subplot(3,2,1),imshow(I);title(' 原始图像 ');axis([50,250,50,200]);axis on;% 显示坐标系I1=rgb2gray(I);subplot(3,2,2),imshow(I1);title(' 灰度图像 ');axis([50,250,50,200]);axis on;% 显示坐标系se=strel('disk',1);I3=imclose(I1,se);%闭合操作subplot(3,2,3),imshow(I2);title(' 开启运算后图像 ');axis([50,250,50,200]);axis on;% 显示坐标系subplot(3,2,4),imshow(I3);title(' 闭合运算后图像 ');axis([50,250,50,200]);axis on;% 显示坐标系se=strel('disk',1);I4=imopen(I1,se);I5=imclose(I4,se);subplot(3,2,5),imshow(I5);% 开—闭运算图像title(' 开—闭运算图像 ');axis([50,250,50,200]);axis on;% 显示坐标系I6=imclose(I1,se);I7=imopen(I6,se);subplot(3,2,6),imshow(I7);% 闭—开运算图像title(' 闭—开运算图像 ');axis([50,250,50,200]);axis on;% 显示坐标系19. 形态学边界提取利用 MATLAB 实现如下:I=imread('xian.bmp');% 载入图像subplot(1,3,1),imshow(I);title(' 原始图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I1=im2bw(I);subplot(1,3,2),imshow(I1);title(' 二值化图像 ');axis([50,250,50,200]);grid on;% 显示网格线axis on;% 显示坐标系I2=bwperim(I1);% 获取区域的周长subplot(1,3,3),imshow(I2);title(' 边界周长的二值图像 ');axis([50,250,50,200]);grid on;axis on;20.形态学骨架提取利用 MATLAB 实现如下:I=imread('xian.bmp'); subplot(2,2,1),imshow(I); title(' 原始图像 ');axis([50,250,50,200]); axis on;I1=im2bw(I);subplot(2,2,2),imshow(I1); title(' 二值图像 ');axis([50,250,50,200]); axis on;I2=bwmorph(I1,'skel',1); subplot(2,2,3),imshow(I2); title('1 次骨架提取 ');axis([50,250,50,200]); axis on;I3=bwmorph(I1,'skel',2); subplot(2,2,4),imshow(I3); title('2 次骨架提取 ');axis([50,250,50,200]); axis on;21.直接提取四个顶点坐标I = imread('xian.bmp');I = I(:,:,1);BW=im2bw(I);figureimshow(~BW)[x,y]=getpts。
ch5-图象增强1
什么是灰度变换 将一个灰度区间映射到另一个灰度区间的变换 称为灰度变换。 称为灰度变换。 灰度变换的目的 灰度变换可使图像动态范围加大,图像对比度 灰度变换可使图像动态范围加大, 扩展,图像清晰,特征明显, 扩展,图像清晰,特征明显,是图像增强的重 要手段。 要手段。 灰度变换的分类 1. 线性变换 2. 非线性变换。 非线性变换。
灰度变换(7)- 第一节 灰度变换 - 非线性变换
增强对比度 (直接对比度扩展) 直接对比度扩展) 使亮的更亮, 使亮的更亮,暗的更暗
s=r s=T(r) O J L-1 r s L-1
直方图变换(1) 第二节 直方图变换
直方图是用来表达一幅图像灰度级与出现这种灰 直方图 度的概率之间的关系的图形。 横坐标:灰度--r 纵坐标:为某一灰度值ri的像素个数ni 或是灰度出现的概率P(r) 直方图的作法 a)将图象的灰度级归一化 将图象的灰度级归一化
图像增强的应用及其分类(2) 图像增强的应用及其分类
图像增强按作用域分为两类, 空域处理和 图像增强按作用域分为两类,即空域处理和频域 处理。 处理。 空域处理是直接对图像进行处理; 空域处理是直接对图像进行处理; 频域处理则是在图像的某个变换域内, 频域处理则是在图像的某个变换域内,对图像 的变换系数进行运算, 的变换系数进行运算,然后通过逆变换获得图像 增强效果。 增强效果。 图像增强与感兴趣物体特性、观察者的习惯和 图像增强与感兴趣物体特性、 处理目的相关,因此, 处理目的相关,因此,图像增强算法应用是有针对 性的,并不存在通用的增强算法。 性的,并不存在通用的增强算法。
Ps ( s ) = ( Pr ( r ) dr ) ds r = T −1 ( s )
直方图均衡化技术是通过变换将原图像的直方图调整 为平坦的直方图,然后用此均衡直方图校正图像。
数字图像处理 实验代码
subplot(2,2,3),imshow(J);
title('线性变换图像[0.1 0.5]');
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
K=imadjust(I1,[0.3 0.7],[]); %局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1]
%g(mx+1:m,my+1:n,1:x)=f(1:m-mx,1:n-my ,1:x); g(1:m-mx,1:n-my ,1:x)=f(mx+1:m,my+1:n,1:x); figure; imshow(uint8(g));
end
3. f=imread('hehua1.bmp'); [m,n]=size(f); for i=50:10:200 m=i; n=i; f2=imcrop(f,[n,n,m,m]); figure; imshow(uint8(f2)); end
(4) 图像旋转imrotate函数,语法格式为: B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。
三、实验内容 (1) 将图像hehua.bmp裁剪成200X200大小 (2) 制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色 填充 (3) 利用剪切图像函数制作动画 (4) 将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显 示图像。 (5) 将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。 (6) 将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果 四、 实验环境 Windows下matlab编程环境
数字图像处理——彩色图像实验报告
数字图像处理——彩色图像实验报告第一篇:数字图像处理——彩色图像实验报告6.3实验步骤(1)对彩色图像的表达和显示* * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * *rgbcube(0,0,10);%从正面观察彩色立方体rgbcube(10,0,10);%从侧面观察彩色立方rgbcube(10,10,10);%从对角线观察彩色立方体%* * * * * * * * * *索引图像的显示和转换* * * * * * * * * f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);%f是RGB真彩图像%rgb图像转换成8色索引图像,不采用抖动方式[X1,map1]=rgb2ind(f,8,'nodither');figure,imshow(X1,map1);%采用抖动方式转换到8色索引图像[X2,map2]=rgb2ind(f,8,'dither');figure,imshow(X2,map2);%显示效果要好一些 g=rgb2gray(f);%f转换为灰度图像g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像figure,imshow(g1);%显示抖动处理后的二值图像程序运行结果:*彩色立方体原图不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像灰度图像抖动处理后的二值图像(2)彩色空间转换f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);%转换到NTSC彩色空间%f是RGB真彩图像ntsc_image=rgb2ntsc(f);figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息%转换到HIS彩色空间hsi_image=rgb2hsi(f);figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2));%显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息程序运行结果:原图转换到NTSC彩色空间显示亮度信息显示色差信息显示色差信息转换到HIS彩色空间显示色差信息显示饱和度信显示亮度信息(3)彩色变换f=imread('D:PictureFig0614(a)(Chalk Original).tif');G=ice('image',f);%打开ice窗口对图像进行调整%在窗口中执行以下操作:%a)得到图像的补色%b)拖动映射曲线,对图像显示效果进行修改%c)在颜色通道中选中某一颜色,然后对映射曲线进行修改程序运行结果(1):全彩色图片ICE窗口它的补色ICE窗口拖动映射曲线,图像的显示效果ICE窗口f2=imread('D:Picture JLK Magenta.tif');figure,imshow(f2);%在CMYK彩色空间内打开图像选择RedICE窗口g2=ice('image',f2,'space','CMYK');%f2的图像色彩偏红,拖动映射曲线,%调整映射参数,使图像的色彩看起来比较正常。
数字图像处理及MATLAB实现第八章彩色图像处理及MATLAB实现
8.4.1 彩色图像分割
8.4.2 彩色图像测量 8.4.3 图像的伪彩色和假彩色处理 (1)伪彩色处理 (2)假彩色处理
21
8.4.4 伪彩色和假彩色处理的MATLAB实现 (1)灰度分层方法伪彩色处理的MATLAB实现 (2)变换法伪彩色处理MATLAB实现
图8.13 伪彩色处理的灰度分层方法
1
8.2 彩色视觉与彩色图像 彩色图像处理的许多目标是帮助人更好地观察 和理解图像中的信息,处理方案的选择和设计与 信源和信宿的特征密切相关。所谓信源就是处理 前或者处理后的图像,而信宿就是处理前后信息 的接收者———人的视觉系统。因此了解图像特 点和人的视觉系统对彩色的感知规律是十分必要 的,本节将介绍有关这方面的内容,即色度学的 知识。
6
7
8.2.5 彩色图像的 MATLAB 的实现 (1)MATLAB 图像处理工具箱支持的彩色图像 1)索引图像 2)RGB 图像 3)HSV 图像 (2)MATLAB 图像处理工具箱 HSV 模式与 RGB 模式之间的相互变换 (3)相互转换的 MATLAB 实现
8
图8.3 RGB图像转变为 HSV 图像,再由HSV图像 转变为RGB图像示例
图8.10 色彩调整示例
17
(2)真彩色增强的 MATLAB 实现
图8.11 真彩色图像均值滤波前、后显示效果对比
18
(3)彩色图像恢复的MATLAB实现
图8.12 彩色图像恢复的示例
19
8.4 彩色图像分析 彩色图像分析主要是指对图像中感兴趣的目标 进行检测和测量,以获得它们的客观信息,从而 建立对图像的描述。图像分析是一个从图像到数 据的过程。这里的数据可以是对目标特征测量的 结果,或是基于测量的符号表示。它们指出了图 像中目标的特点和性质。这种处理基本上用于自 身图像分析、模式识别和计算机视觉等模式。例 如彩色体的分类、排列等。为了描述图像,首先 要进行分割,然后进行测量和特征提取等处理。
数字图像处理实验完整代码(原创精心整理)
数字图像处理实验完整代码(原创精心整理)第一篇:数字图像处理实验完整代码(原创精心整理)实验一图象灰度变换(2学时)一、实验目的:理解数字图象处理的基本过程,掌握常用图象灰度变换算法,观察图像图象灰度变换的结果,加深对数字图象基本概念的理解。
二、实验内容:1、灰度线性变换变换函数为:s = a r + b设计程序,实现(a>1,b=0)、(00)和(a=1,b<0)等情况下的灰度变换处理,并比较处理前后的图象效果。
2、图象二值化设计程序,实现图象的二值化。
并给出三种门限下的处理结果。
3、负象变换设计程序,实现图象的反转操作(负象变换),并比较处理前后的图象结果。
4、灰度非线性变换(选做内容)设计程序,实现图象的指数变换和对数变换。
三、实验步骤:1、获取实验用图像:使用imread函数将图像读入Matlab,用size函数(或imfinfo函数)获取图象大小。
2、产生灰度变换函数:s = a r + b用imshow函数分别观察在(a>1,b=0)、(00)和(a=1,b<0)四情况下处理前后的结果。
适当选择参数,使处理结果达到较好的效果。
记录下所对应的参数。
3、用imwrite函数保存处理图象结果。
4、设计门限化方法实现图象的二值化的变换函数,并进行程序设计实现。
分别选择三个门限值,观察处理结果。
5、设计实现反转操作的变换函数,并进行程序设计实现。
观察处理结果。
6、分别设计实现图象的指数变换和对数变换的变换函数,参数自己选定,并比较处理前后的图象结果。
(选做内容)四、实验报告要求:画出算法的规范化程序设计流程图。
用plot等函数生成各类灰度变换函数曲线,用imshow函数显示处理前后图象。
在实验报告中提交原图像和各种变换函数的曲线,以及按各种变换函数处理后的图像,并进行实验结果分析。
选做内容可不写入报告中。
实验一代码R=imread('实验1原图.jpg');[m,n]=size(R)figure, imshow(R);title('原图1');S1=R*3;figure,imshow(S1);title('a=3,b=0');imwrite(S1,'1.21.jpg');N=im2double(R);S2=N*0.5;figure,imshow(S2);title('a=0.5,b=0');imwrite(S2,'1.22.jpg');S3=R+10;figure,imshow(S3);title('a=1,b=10');imwrite(S3,'1.23.jpg');S4=N+0.5;figure,imshow(S4);title('a=1,b=0.5');imwrite(S4,'1.24.jpg');X1=R>64;figure, imshow(X1);title('门限值为64');imwrite(X1,'1.41.jpg');X2=R>128;figure, imshow(X2);title('门限值为128');imwrite(X2,'1.42.jpg');X3=R>192;figure, imshow(X3);title('门限值为192');imwrite(X3,'1.43.jpg');Y=255-R;figure, imshow(Y);title('反转后的图像');imwrite(Y,'1.51.jpg');Z1=N.^0.6;figure, imshow(Z1);title('指数变换后的图像');imwrite(Z1,'1.61.jpg');Z2=log(N+1)%Z3=im2uint8(Z2)figure,imshow(Z3);figure,i mshow(Z2,[]);title('对数变换后的图像');imwrite(Z2,'1.62.jpg');实验二图象直方图及均衡(2学时)一、实验目的:理解图象灰度直方图的概念,掌握图象直方图的计算方法;掌握直方图均衡化图象增强技术,理解均衡化的处理过程。
数字图像处理之彩色图像地处理
实验六彩色图像的处理一、实验目的1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。
2、了解RGB图像与不同颜色空间之间的转换。
3、掌握彩色图像的直方图处理方法。
二、实验内容及步骤1、RGB图像与索引图像、灰度级图像的转换。
close allRGB=imread('flowers.tif');[R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像figureimshow(R_i,map)[R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像figureimshow(R_g)思考:将RGB 图像’flowers.tif ’分别转换为32色、256色、1024色索引图像,是否调色板所表示的颜色值越多图像越好?close allRGB=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色的索引图像');结论:随着索引值的增加图像的质量也有增加,更加清晰,色彩也更加鲜明。
[课件]冈萨雷斯数字图像处理第五章彩色图像处理PPT
X11 X12 X X22 21 X Xm1 Xm2
X1n X2n Xmnmn
r1 r 2 map ri rL
g1 g2 gi gL
b1 b2 bi bL L3
256×256×256=16 777 216≈1670万种颜色。 这足以表示自然界的任一颜色,故又称其为 24位真彩色。
第五章 彩色图象处理
• 一幅图像中的每一个像素点均被赋予不同的RGB值,
便可以形成真彩色图像,如红色(255,0,0)、绿色(0, 255,0)、蓝色(0,0,255)、青色(0,255,255)、品红 (255,0,255)、黄色(255,255,0)、白色(255,255, 255)、黑色(0,0,0)等,等比例混合三基色产生的是 灰色。 RGB颜色模型可用一个三维空间中的单位立方体 来表示,如图所示。
第五章 彩色图象处理
索引图像X与对应示意图
r1 r2 . . rk . . rL X
g1 b1 g2 b2 . . . . gk bk . . . . gL bL map
圆圈圈过的元素之值=k-1(X为uint8 uint16)
第五章 彩色图象处理 索引图像文件的读取 – [X, map] = imread(filename, fmt) – [X, map] = imread( filename, fmt ) reads the indexed image in filename into X and its associated colormap into map. The colormap values are rescaled to the range [0,1]. 索引图像的显示 – imshow(X, map) 或 – image(X) – colormap(map)
数字图像处理代码Ch5《彩色图像处理》
例5.1 函数说明。
clc,clear,close all;%函数demof=imread('Fig0604(a)(iris).tif');subplot 131;imshow(f);title('(a)RGB图像');[X1,map1]=rgb2ind(f,8,'nodither');subplot 132;imshow(X1,map1);title('(b)未经抖动处理的颜色数减少到8的图像');[X2,map2]=rgb2ind(f,8,'dither');subplot 133;imshow(X2,map2);title('(c)经抖动处理的颜色数减少到8的图像');g=rgb2gray(f); g1=dither(g);figure;subplot 121;imshow(g);title('(d)使用函数rgb2gray得到的图(a)的灰度图像');subplot 122;imshow(g1);title('(e)抖动处理后的灰度图像(二值图像)');运行结果:例5.2 RGB转化为HSI。
clc,clear,close all;%从RGB转化到HSIf=imread('Fig0602(b)(RGB_color_cube).tif'); subplot 221;imshow(f);title('(a)RGB图像');f1=rgb2hsi(f);H=f1(:,:,1);S=f1(:,:,2);I=f1(:,:,3);subplot 222;imshow(H);title('(b)色调图像'); subplot 223;imshow(S);title('(c)饱和度图像'); subplot 224;imshow(I);title('(d)亮度图像');运行结果:例5.3 基于L*a*b彩色空间创建一个感觉上一致的彩色空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例5.1 函数说明。
clc,clear,close all;%函数demof=imread('Fig0604(a)(iris).tif');subplot 131;imshow(f);title('(a)RGB图像');[X1,map1]=rgb2ind(f,8,'nodither');subplot 132;imshow(X1,map1);title('(b)未经抖动处理的颜色数减少到8的图像');[X2,map2]=rgb2ind(f,8,'dither');subplot 133;imshow(X2,map2);title('(c)经抖动处理的颜色数减少到8的图像');g=rgb2gray(f); g1=dither(g);figure;subplot 121;imshow(g);title('(d)使用函数rgb2gray得到的图(a)的灰度图像');subplot 122;imshow(g1);title('(e)抖动处理后的灰度图像(二值图像)');运行结果:例5.2 RGB转化为HSI。
clc,clear,close all;%从RGB转化到HSIf=imread('Fig0602(b)(RGB_color_cube).tif'); subplot 221;imshow(f);title('(a)RGB图像');f1=rgb2hsi(f);H=f1(:,:,1);S=f1(:,:,2);I=f1(:,:,3);subplot 222;imshow(H);title('(b)色调图像'); subplot 223;imshow(S);title('(c)饱和度图像'); subplot 224;imshow(I);title('(d)亮度图像');运行结果:例5.3 基于L*a*b彩色空间创建一个感觉上一致的彩色空间。
clc,clear,close all;L=linspace(40,80,1024); %创建40到80之间等分1024个值的斜坡radius=70; %明显不同的相邻颜色,通过改变彩色的色调满足,theta=linspace(0,pi,1024); %色调对应于a*b*平面中彩色坐标的极角a=radius*cos(theta); b=radius*sin(theta);L=repmat(L,100,1);a=repmat(a,100,1);b=repmat(b,100,1);%创建该L*a*b*彩色标尺的一幅100×1024×3 的图像lab_scale=cat(3,L,a,b);cform=makecform('lab2srgb');rgb_scale=applycform(lab_scale,cform);imshow(rgb_scale);title('基于L*a*b彩色空间的感觉上一致的标尺');运行结果:例5.4 ICC彩色剖面的软件证明。
clc,clear,close all;f=imread('Fig0604(a)(iris).tif');fp=padarray(f,[40 40],255,'both');%围绕图像加一较粗的白色边框和一个较细灰色边框fp=padarray(fp,[4 4],230,'both'); %便于查看模拟的新闻报纸的白度subplot 121;imshow(fp);title('(a)带有白色边框的原始图像');p_srgb=iccread('sRGB.icm'); %读入两个剖面,使它们把虹膜图像从sRGB转为新闻纸颜色p_snap=iccread('SNAP2007.icc');cform1=makecform('icc',p_srgb,p_snap); fp_newsprint=applycform(fp,cform1); cform2=makecform('icc',p_snap,p_srgb,...'SourceRenderingIntent','AbsoluteColorimetric',..'DestRenderingIntent','AbsoluteColorimetric'); fp_proof=applycform(fp_newsprint,cform2);subplot 122; imshow(fp_proof);title('(b)图像打印到新闻纸上后的模拟外观');运行结果:例5.5 单色负片和彩色分量的反映射。
clc,clear,close all;f=imread('Fig0304(a)(breast_digital_Xray).tif');g=ice('image',f,'space','rgb');f1=imread('Fig0614(a)(Chalk Original).tif.tif');g1=('image',f,'space','rgb'); %得到图像的负片运行结果:例5.6 单色和彩色对比度增强。
f2=imread('Fig0615(a)(Aerial Original).tif.tif');g2=ice('image',f2,'space','rgb');f3=imread('Fig0615(d)(Iris Original).tif.tif');g3=ice('image',f3,'space','rgb');运行结果:例5.7 伪彩色映射。
f4=imread('Fig0616(a)(Weld Original).tif.tif');g4=ice('image',f4);运行结果:例5.8 彩色平衡。
f5=imread('Fig0617(a)(JLK Magenta).tif.tif');g5=ice('image',f5,'space','CMY');运行结果:例5.9 基于直方图的映射。
f5=imread('Fig0618(a)(Caster Original).tif.tif');imshow(f5);g5=ice('image',f5,'space','hsi');运行结果:例5.10 彩色图像平滑。
clc,clear,close all;f=imread('Fig0619(a)(RGB_iris).tif');R=f(:,:,1); G=f(:,:,2); B=f(:,:,3);subplot 141;imshow(f);title('(a)原图');subplot 142;imshow(R);title('(a)R');subplot 143;imshow(G);title('(b)G');subplot 144;imshow(B);title('(c)B');h=rgb2hsi(f);H=h(:,:,1);S=h(:,:,2);I=h(:,:,3);figure;subplot 131;imshow(H);title('(a)H');subplot 132;imshow(S);title('(b)S');subplot 133;imshow(I);title('(c)I');w=fspecial('average',25); I_filtered=imfilter(I,w,'replicate');H_filtered=imfilter(H,w,'replicate'); S_filtered=imfilter(S,w,'replicate');h=cat(3,H,S,I_filtered);F=hsi2rgb(h);h1=cat(3,H_filtered,S_filtered,I_filtered);f2=hsi2rgb(h1);figure;r_filtered=imfilter(R,w,'replicate'); g_filtered=imfilter(G,w,'replicate');b_filtered=imfilter(B,w,'replicate');f1=cat(3,r_filtered,g_filtered,b_filtered);subplot 131;imshow(f1);title('(a)分别平滑RGB分量得到平滑后RGB图像');subplot 132;imshow(F);title('(b)HSI中亮度分量I滤波后');subplot 133;imshow(f2);title('(c)平滑所有三个HSI分量的结果');运行结果:例5.11 彩色图像锐化。
clc,clear,close all;f=imread('Fig0619(a)(RGB_iris).tif');w=fspecial('average',5);fb=imfilter(f,w,'replicate');subplot 121;imshow(fb);title('(a)模糊图像');lapmask=[1 1 1;1 -8 1;1 1 1];fb=tofloat(fb); fen=fb-imfilter(fb,lapmask,'replicate');subplot 122;imshow(fen);title('(b)使用拉普拉斯算子增强后的图像');运行结果:例5.11 使用函数colorgrad检测RGB图像的边缘。