matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf

上传人:tbuqq 文档编号:5197497 上传时间:2020-02-19 格式:PDF 页数:18 大小:1.86MB
返回 下载 相关 举报
matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf_第1页
第1页 / 共18页
matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf_第2页
第2页 / 共18页
matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf_第3页
第3页 / 共18页
matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf_第4页
第4页 / 共18页
matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf》由会员分享,可在线阅读,更多相关《matlab《数字图像处理》第4章图像类型与彩色模型的转换附要点.pdf(18页珍藏版)》请在三一文库上搜索。

1、08- 1 第四章 图像类型与 彩色模型的转换(附) 【目录】 一、图像类型的转换 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1、真彩图像索引图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2、索引图像真彩图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3、真彩图像灰度图像 . . . . . . . . . . . . . . .

2、 . . . . . . . . . . . . . . . . . . . . 4 4、真彩图像二值图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5、索引图像灰度图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6、灰度图像索引图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7、灰度图像二值

3、图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 8、索引图像二值图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 9、数据矩阵灰度图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 二、彩色模型的转换 . . . . . . . . . . . . . . . . . . . . . . . . 11

4、1、图像的彩色模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2、彩色转换函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 三、纹理映射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 【正文】 一、图像类型的转换 08- 2 转换类型转换函数用 处 真彩图像 索引图像 X=dith

5、er(RGB,map)节省存储空 间,假彩色 索引图像 真彩图像 RGB=ind2rgb(X,map)便于图像处 理 真彩图像 灰度图像 I=rgb2gray(RGB)得到亮度分 布 真彩图像 二值图像 BW=im2bw(RGB,level)阈值处理,筛 选 索引图像 灰度图像 I=ind2gray(X,map) Newmap=rgb2gray(map) 得到亮度分 布 灰度图像 索引图像 X,map=gray2ind(I,n), X=grayslice(I,n) X=grayslice(I,v) 伪彩色处理 二值图像 灰度图像数据矩阵索引图像 真彩图像 A I X,map RGBBW 08-

6、 3 灰度图像 二值图像 BW=dither(I) BW=im2bw(I,level) 阈值处理,筛 选 索引图像 二值图像 BW=im2bw(X,map,level)阈值处理,筛 选 数据矩阵 灰度图像 I=mat2gray(A,max,min) I=mat2gray(A) 产生图像 1、真彩图像索引图像 【格式】X=dither(RGB,map) 【说明】按指定的颜色表 map 通过颜色抖动实现转换 颜色抖动即改变像素点的颜色,使像素颜色近似于色图 的颜色,从而以空间分辨率来换取颜色分辨率。 【输入】RGB 可以是 double、uint16 或 uint8 类型 【输出】X 超过 256

7、 色则为 uint16 类型,否则输出为 uint8 型 【例】 CLF RGB=imread(flowers.tif); map=jet(256); X=dither(RGB,map); subplot(1,2,1);subimage(RGB);title(真彩图) subplot(1,2,2);subimage(X,map);title(索引图) 08- 4 真 彩 图 100200300400500 50 100 150 200 250 300 350 索 引 图 100200300400500 50 100 150 200 250 300 350 2、索引图像真彩图像 【格式】RGB=

8、ind2rgb(X,map) 具有调色板 map 的索引图像 X 转换成真彩色图像 RGB, 实际实现时就是产生一个三维数据矩阵,然后将索引图像对 应的调色板颜色赋予三维数据矩阵。 【输入】X 可以是 double、uint16 或 uint8 类型 【输出】RGB 为 double 类型 【例】 CLF,load trees; RGB=ind2rgb(X,map); subplot(1,2,1);subimage(X,map);title(索引图) subplot(1,2,2);subimage(RGB);title(真彩图) 索 引 图 100200300 50 100 150 200 2

9、50 真 彩 图 100200300 50 100 150 200 250 3、真彩图像灰度图像 08- 5 【格式】I=rgb2gray(RGB) 【输入】RGB 可以是 double、uint16 或 uint8 类型 【输出】I 类型同 RGB 【例】 CLF,RGB=imread(flowers.tif); I=rgb2gray(RGB); subplot(1,2,1);subimage(RGB);title(真彩图) subplot(1,2,2);subimage(I);title(灰度图) 真 彩 图 100200300400500 50 100 150 200 250 300 3

10、50 灰 度 图 100200300400500 50 100 150 200 250 300 350 4、真彩图像二值图像 【格式】BW=im2bw(RGB,level) 【说明】设置亮度阈值 level,将真彩图像转换为二值图 像。Level 是归一化的阈值,值域范围为0 1;level 可以由 函数 graythresh(I)计算得到。 【输入】RGB 可以是 double、uint16 或 uint8 类型 【输出】BW 为 uint8 型 【例】 08- 6 CLF,RGB=imread(flowers.tif); BW=im2bw(RGB,0.5); subplot(1,2,1);

11、subimage(RGB);title(真彩图) subplot(1,2,2);subimage(BW);title(二值图) 真 彩 图 100200300400500 50 100 150 200 250 300 350 二 值 图 100200300400500 50 100 150 200 250 300 350 5、索引图像灰度图像 【格式 1】I=ind2gray(X,map) 【格式 2】Newmap=rgb2gray(map) 【说明】格式 2 将彩色调色板 map 转换为灰度调色板 Newmap 【输入】X 可以是 double、uint16 或 uint8 类型,map 为

12、 double 类型 【输出】I 是 double 类型,Newmap 为 double 类型 【例】 CLF,load trees; I=ind2gray(X,map); Newmap=rgb2gray(map); subplot(2,2,1);subimage(X,map);title(索引图) subplot(2,2,3);subimage(I);title(格式 1 灰度图) subplot(2,2,4);subimage(X,Newmap);title(格式 2 灰度 08- 7 图) 索 引 图 100200300 50 100 150 200 250 格 式 1灰 度 图 100

13、200300 50 100 150 200 250 格 式 2灰 度 图 100200300 50 100 150 200 250 6、灰度图像索引图像 【格式 1】1、X,map=gray2ind(I,n) 2、X=grayslice(I,n) 3、X=grayslice(I,v) 【说明】格式 1:将灰度图像转换为灰度级为 n 的索引 图像 X,n 的默认值为 64; 格式 2:将灰度图像 I 均匀量化为 n 个等级,然后转换 为伪彩色图像 X; 格式 3:按指定的阈值矢量 v(其中每个元素在 0 和 1 之 间)对图像 I 进行阈值划分,然后转换成索引图像 【输入】I 可以是 doubl

14、e 类型、uint8 类型和 uint16 类 型 08- 8 【输出】map 的行不大于 256,则 X 为 uint8 类型,否 则为 uint16 类型 【例】 CLF,I=imread(rice.tif); X1,map1=gray2ind(I,16); X2=grayslice(I,8); X3=grayslice(I,255*0 0.21 0.23 0.26 0.30 0.35 0.6 1.0); subplot(2,2,1);subimage(I);title(灰度图) subplot(2,2,2);subimage(X1,map1);title(16 灰度级图) subplot

15、(2,2,3);subimage(X2,hot(8);title(均匀量化图) subplot(2,2,4);subimage(X3,jet(8);title(非均匀量化图 ) 灰 度 图 50100150200250 50 100 150 200 250 16 灰 度 级 图 50100150200250 50 100 150 200 250 均 匀 量 化 图 50100150200250 50 100 150 200 250 非 均 匀 量 化 图 50100150200250 50 100 150 200 250 08- 9 7、灰度图像二值图像 【格式一】BW=dither(I);

16、【格式二】BW=im2bw(I,level) 【说明】格式一用抖动的方式实现转换,格式二用阈值 方式转换 【输入】I 可以是 double 类型和 uint8 类型 【输出】 BW 支持逻辑 0 和 1 类型 (一般为 double 类型) 【例】 CLF,I=imread(saturn.tif); BW1=dither(I); BW2=im2bw(I,0.5); subplot(2,2,1);subimage(I);title(灰度图) subplot(2,2,3);subimage(BW1);title(抖动二值化) subplot(2,2,4);subimage(BW2);title(阈

17、值二值化) 灰 度 图 100200300400 50 100 150 200 250 300 抖 动 二 值 化 100200300400 50 100 150 200 250 300 阈 值 二 值 化 100200300400 50 100 150 200 250 300 08-10 8、索引图像二值图像 【格式】BW=im2bw(X,map,level) 【输入】X 可以是 double、uint16 或 uint8 类型 【输出】BW 为 uint8 类型 【例】 CLF,load trees; BW=im2bw(X,map,0.5); subplot(1,2,1);subimage

18、(X,map);title(索引图) subplot(1,2,2);subimage(BW);title(二值图) 索 引 图 100200300 50 100 150 200 250 二 值 图 100200300 50 100 150 200 250 9、数据矩阵灰度图像 【格式】1、I=mat2gray(A,max,min) 2、I=mat2gray(A) 【说明】 按指定的取值区间max,min将数据矩阵 A 转换 为灰度图像 I,amin 是灰度最暗的值(0 值),amax 是灰度 最亮的值(1 值)。如不指定区间,自动取最大区间。 【输入】A 为 double 类型 【输出】I 为

19、 double 类型 【例】 CLF;I=imread(rice.tif); 08-11 A=filter2(fspecial(sobel),I); J=mat2gray(A); subplot(1,2,1);subimage(I);title(原图) subplot(1,2,2);subimage(J);title(转换图) 原 图 50100150200250 50 100 150 200 250 转 换 图 50100150200250 50 100 150 200 250 二、彩色模型的转换 1、图像的彩色模型 (1) RGB 模型 是色光的彩色模式,R 代表红色,G 代表绿色,B 代

20、表 蓝色。RGB 颜色模型是显示和保存彩色图像最常用的模型, 三维空间中的 3 个轴分别与红绿蓝三个分量相对应。原点对 应于黑色,离原点最远的顶点对应于白色,其它颜色位于三 维空间中。 为了处理方便,所有颜色值都被归一化处理,也就是所 有的 RGB 值都被假定在0,1范围上。 (2) NTSC 模型 NTSC 模型用于电视信号。其特点是亮度信号与色度信 号相分离。一个信号能同时表示彩色图像和黑白图像。他的 08-12 Y 表示亮度,I 表示色度,Q 表示饱和度。 (3) HSV 模型 根据人眼的视觉特性表示的颜色,H 表示色调,S 表示 饱和度,V 表示明度。 HSV 模型是面向用户的,在通常

21、使用的色彩轮和调色板 中选择的色彩(如画笔和墨水等)。因此它比 RGB 颜色模 型具有更好的视觉效果。H、S 和 V 三个分量取值范围都是 01.0. H:从色彩来说基本经过红、黄、绿、蓝绿、蓝、紫到 红,因此红对应了 0 和 1 值。S:对应于色调种类从不饱和 (灰度梯度)到全饱和(无白色);V:对应于色彩由暗变 亮。 (4) YCbCr 模型 YCbCr 模型是数字视频中常用的颜色模型。Y 表示亮度 信号,亮度信息存储在 Y 中,色度信息存储在 Cb、Cr 中。 Cb 表示绿色色度分量;Cr 表示红色色度分量。 2、彩色转换函数 RG B NTSCHSVYCbCr 08-13 (1) RG

22、B 颜色空间转换到 NTSC 颜色空间 【格式】YIQMAP=rgb2ntsc(RGBMAP) 【说明】将 RGB 色表转换为 YIQ 色表 【输入】RGBMAP 为 double 类型 【输出】YIQMAP 为 double 类型 【格式】YIQ=rgb2ntsc(RGB) 【说明】表示将 RGB 图像转换为 NTSC 图像 【输入】RGB 为 double、uint8 或 uint16 类型 【输出】YIQ 为 double 类型 【例】 CLF,RGB=imread(flowers.tif); YIQ=rgb2ntsc(RGB); subplot(2,3,1);subimage(RGB)

23、;title(RGB 图像) subplot(2,3,3);subimage(mat2gray(YIQ);title(NTSC 图像) subplot(2,3,4);subimage(mat2gray(YIQ(:,:,1);title(Y 分量) subplot(2,3,5);subimage(mat2gray(YIQ(:,:,2);title(I 分量) subplot(2,3,6);subimage(mat2gray(YIQ(:,:,3);title(Q 分量) 08-14 RGB 图 像 100200300400500 100 200 300 NTSC 图 像 1002003004005

24、00 100 200 300 Y 分 量 100200300400500 100 200 300 I分 量 100200300400500 100 200 300 Q分 量 100200300400500 100 200 300 (2) NTSC 颜色空间转换到 RGB 颜色 【格式】RGBMAP=ntsc2rgb(YIQMAP) 【说明】将 YIQ 色表转换为 RGB 色表 【输入】YIQMAP 为 double 类型 【输出】RGBMAP 为 double 类型 【格式】RGB=ntsc2rgb(YIQ) 【说明】表示将 YIQ 图像转换为 RGB 图像 【输入】YIQ 为 double

25、类型 【输出】RGB 为 double 类型 【例】 CLF,load trees; YIQMAP=rgb2ntsc(map); map1=ntsc2rgb(YIQMAP); YIQMAP=mat2gray(YIQMAP); 08-15 Ymap=YIQMAP(:,1),YIQMAP(:,1),YIQMAP(:,1); Imap=YIQMAP(:,2),YIQMAP(:,2),YIQMAP(:,2); Qmap=YIQMAP(:,3),YIQMAP(:,3),YIQMAP(:,3); subplot(2,3,1);subimage(X,map);title(原始图像) subplot(2,3,

26、2);subimage(X,YIQMAP);title(转换图像) subplot(2,3,3);subimage(X,map1); title(还原图像) subplot(2,3,4);subimage(X,Ymap); title(NTSC 的 Y 分 量) subplot(2,3,5);subimage(X,Imap); title(NTSC的 I 分量 ) subplot(2,3,6);subimage(X,Qmap);title(NTSC 的 Q 分 量) 原 始 图 像 100200300 50 100 150 200 250 转 换 图 像 100200300 50 100 15

27、0 200 250 还 原 图 像 100200300 50 100 150 200 250 NTSC 的 Y分 量 100200300 50 100 150 200 250 NTSC 的 I分 量 100200300 50 100 150 200 250 NTSC 的 Q 分 量 100200300 50 100 150 200 250 (3) rgb2hsv 08-16 (4) hsv2rgb (5) rgb2ycbcr (6) ycbcr2rgb 三、纹理映射 使用 imshow 命令时,MATLAB 通常以二维视图形式显 示一幅图像。 纹理映射使用 WARP 命令通过插值的方法将一 幅

28、图像映射到一个曲面网格上。 纹理映射是一种将二维图像映射到三维图形表面的一种 技术。Warp 函数是通过插值实现图像的纹理映射,显示在 三维空间中。 格式如下: WARP(X,MAP)将索引图像显示在缺省表面上 WARP(I,N)将灰度图像显示在缺省表面上 WARP(BW)将二值图像显示在缺省表面上 WARP(RGB)将真彩图像显示在缺省表面上 WARP(z,.)将图像显示 z 表面上 WARP(x,y,z,.) 将图像显示(x,y,z)表面上 H = WARP(.)返回图像的句柄 输入图像的数据格式可以是 logical、uint8、uint16 或 double 类型。 08-17 【例】 x,y,z=cylinder; I=imread(FLOWERS.TIF); warp(x,y,z,I); 【例】 X,Y,Z=ELLIPSOID(0,0,0,1,2,3,50); SURF(X,Y,Z); RGB=IMREAD(FLOWERS.TIF); WARP(X,Y,Z,RGB); 08-18 P=PEAKS(50); RGB=IMREAD(greens.jpg); WARP(P,RGB);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1