实验02 图像类型与彩色模型的转换.docx

上传人:b****6 文档编号:8550802 上传时间:2023-01-31 格式:DOCX 页数:13 大小:1.41MB
下载 相关 举报
实验02 图像类型与彩色模型的转换.docx_第1页
第1页 / 共13页
实验02 图像类型与彩色模型的转换.docx_第2页
第2页 / 共13页
实验02 图像类型与彩色模型的转换.docx_第3页
第3页 / 共13页
实验02 图像类型与彩色模型的转换.docx_第4页
第4页 / 共13页
实验02 图像类型与彩色模型的转换.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验02 图像类型与彩色模型的转换.docx

《实验02 图像类型与彩色模型的转换.docx》由会员分享,可在线阅读,更多相关《实验02 图像类型与彩色模型的转换.docx(13页珍藏版)》请在冰豆网上搜索。

实验02 图像类型与彩色模型的转换.docx

实验02图像类型与彩色模型的转换

实验二图像类型与

彩色模型的转换

【目录】

【正文】

一、图像类型的转换

转换类型

转换函数

用处

真彩图像→索引图像

X=dither(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)

伪彩色处理

灰度图像→二值图像

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或uint8类型

【输出】X超过256色则为double类型,否则输出为uint8型

【例】

CLF,RGB=imread('f:

\flowers.tif');

map=jet(256);

X=dither(RGB,map);

subplot(1,2,1);subimage(RGB);title('真彩图')

subplot(1,2,2);subimage(X,map);title('索引图')

2、索引图像→真彩图像

【格式】RGB=ind2rgb(X,map)

【输入】X可以是double或uint8类型

【输出】RGB为double类型

【例】

CLF,loadtrees;

RGB=ind2rgb(X,map);

subplot(1,2,1);subimage(X,map);title('索引图')

subplot(1,2,2);subimage(RGB);title('真彩图')

3、真彩图像→灰度图像

【格式】I=rgb2gray(RGB)

【输入】RGB可以是double或uint8类型

【输出】I类型同RGB

【例】

CLF,RGB=imread('f:

\flowers.tif');

I=rgb2gray(RGB);

subplot(1,2,1);subimage(RGB);title('真彩图')

subplot(1,2,2);subimage(I);title('灰度图')

4、真彩图像→二值图像

【格式】BW=im2bw(RGB,level)

【说明】设置亮度阈值level,将真彩图像转换为二值图像

【输入】RGB可以是double或uint8类型

【输出】BW为uint8型

【例】

CLF,RGB=imread('f:

\flowers.tif');

BW=im2bw(RGB,0.5);

subplot(1,2,1);subimage(RGB);title('真彩图')

subplot(1,2,2);subimage(BW);title('二值图')

5、索引图像→灰度图像

【格式1】I=ind2gray(X,map)

【格式2】Newmap=rgb2gray(map)

【说明】格式2将彩色调色板map转换为灰度调色板Newmap

【输入】X可以是double或uint8类型,map为double类型

【输出】I是double类型,Newmap为double类型

【例】

CLF,loadtrees;

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灰度图')

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可以是double类型、uint8类型和uint16类型

【输出】map的行不大于256,则X为uint类型,否则为double类型

【例】

I=imread('f:

\rice.tif');

X1=gray2ind(I);

X2=grayslice(I,8);

X3=grayslice(I,255*[00.210.230.260.300.350.61.0]');

subplot(2,2,1);subimage(I);title('灰度图');

subplot(2,2,2);subimage(I,16);title('16灰度级图');

subplot(2,2,3);subimage(X2,hot(8));title('均匀量化图')

subplot(2,2,4);subimage(X3,jet(8));title('非均匀量化图')

7、灰度图像→二值图像

【格式一】BW=dither(I);【格式一】BW=im2bw(I,level)

【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换

【输入】I可以是double类型和uint8类型

【输出】BW为uint8类型

【例】

I=imread('f:

\cameraman.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('阈值二值化')

8、索引图像→二值图像

【格式】BW=im2bw(X,map,level)

【输入】X可以是double类型和uint8类型

【输出】BW为uint8类型

【例】

CLF,loadtrees;

BW=im2bw(X,map,0.5);

subplot(1,2,1);subimage(X,map);title('索引图')

subplot(1,2,2);subimage(BW);title('二值图')

9、数据矩阵→灰度图像

【格式】1、I=mat2gray(A,[max,min])

2、I=mat2gray(A)

【说明】按指定的取值区间[max,min]将数据矩阵A转换为灰度图像I。

如不指定区间,自动取最大区间。

【输入】A为double类型

【输出】I为double类型

【例】

CLF;I=imread('f:

\rice.tif');

A=filter2(fspecial('sobel'),I);

J=mat2gray(A);

subplot(1,2,1);subimage(I);title('原图')

subplot(1,2,2);subimage(J);title('转换图')

二、彩色模型的转换

1、图像的彩色模型

(1)RGB模型

是色光的彩色模式,R代表红色,G代表绿色,B代表蓝色,通常所说的真彩色。

(2)NTSC模型

NTSC模型用于电视信号。

其特点是亮度信号与色度信号相分离。

一个信号能同时表示彩色图像和黑白图像。

他的Y表示亮度,I表示色度,Q表示饱和度。

(3)HSV模型

根据人眼的视觉特性表示的颜色,H表示色调,S表示饱和度,V表示明度。

(4)YCbCr模型

一种彩色模型,Y表示亮度信号,Cb、Cr两个色度分量。

2、彩色转换函数

(1)RGB颜色空间转换到NTSC颜色空间

【格式】YIQMAP=rgb2ntsc(RGBMAP)

【说明】将RGB色表转换为YIQ色表

【输入】RGBMAP为double类型

【输出】YIQMAP为double类型

【格式】YIQ=rgb2ntsc(RGB)

【说明】表示将RGB图像转换为NTSC图像

【输入】RGB为double、uint8或uint16类型

【输出】YIQ为double类型

【例】

RGB=imread('f:

\strawberries.tif');

YIQ=rgb2ntsc(RGB);

subplot(2,3,1);subimage(RGB);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分量')

(2)NTSC颜色空间转换到RGB颜色

【格式】RGBMAP=ntsc2rgb(YIQMAP)

【说明】将YIQ色表转换为RGB色表

【输入】YIQMAP为double类型

【输出】RGBMAP为double类型

【格式】RGB=ntsc2rgb(YIQ)

【说明】表示将YIQ图像转换为RGB图像

【输入】YIQ为double类型

【输出】RGB为double类型

【例】

CLF,loadtrees;

YIQMAP=rgb2ntsc(map);map1=ntsc2rgb(YIQMAP);

YIQMAP=mat2gray(YIQMAP);

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,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分量')

(3)rgb2hsv

(4)hsv2rgb

(5)rgb2ycbcr

(6)ycbcr2rgb

三、纹理映射

使用imshow命令时,MATLAB通常以二维视图形式显示一幅图像。

纹理映射使用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类型。

【例】

[x,y,z]=cylinder;

I=imread('f:

\flowers.tif');

warp(x,y,z,I);

【例】

[X,Y,Z]=ELLIPSOID(0,0,0,1,2,3,50);

SURF(X,Y,Z);

RGB=imread('f:

\flowers.tif');

WARP(X,Y,Z,RGB);

P=PEAKS(50);

RGB=IMREAD('greens.jpg');

WARP(P,RGB);

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1