当前位置:文档之家› 4-MATLAB彩色图像处理解析

4-MATLAB彩色图像处理解析


其效果等同于: imshow(X, colormap)
举例: [X, map]=imread(‘trees.tif’); image(X) colormap(map);

其效果等同于: imshow(X, map)

MATLAB提供了一些预定义的彩色表(P148表6.2)

imshow(X, hsv)
从RGB图像rgb_image中提取三幅分量图像的命令如下: >>fR=rgb_image(:,:,1); >>fG=rgb_image(:,:,2); >>fB=rgb_image(:,:,3);

举例: rgb_image=imread('peppers.png'); subplot(2,2,1),imshow(rgb_image) fR=rgb_image(:,:,1);subplot(2,2,2),imshow(fR) fG=rgb_image(:,:,2);subplot(2,2,3),imshow(fG) fB=rgb_image(:,:,3);subplot(2,2,4),imshow(fB)

MATLAB支持的4种图像类型(P17): 二值图像(Binary images) 灰度图像(Intensity images) RGB图像(RGB images) 索引图像(Indexed images)

在 MATLAB 中一幅彩色图像要么被当作 RGB 图像,要么被 当作索引图像进行处理。

主要内容:
1 MATLAB中彩色图像的表示方法; 2 MATLAB中的彩色空间;
2018年10月12日4时58分

主要内容:
1 MATLAB中彩色图像的表示方法; 2 MATLAB中的彩色空间; 3 MATLAB中图像伪彩色处理方法; 4 MATLAB中彩色图像的变换和空间滤波。
2018年10月12日4时58分
ห้องสมุดไป่ตู้
rgb_image=imread('peppers.png'); subplot(2,2,1),imshow(rgb_image) fR=rgb_image(:,:,1); fG=rgb_image(:,:,2); fB=rgb_image(:,:,3); rgb_1=cat(3,fB,fR, fG); subplot(2,2,2),imshow(rgb_1) rgb_2=cat(3,fR,fR,fB); subplot(2,2,3),imshow(rgb_2) rgb_3=cat(3,fR,fR,fR); subplot(2,2,4),imshow(rgb_3)
举例:

彩色显示器产生颜色的原理:

一幅索引图像在MATLAB中表示为两个分量:

X为整数的数据矩阵,其大小和索引图像的大小相等;map 是一个大小为 m×3 且范围在 [0,1] 之间的 double 类矩阵。 map 的长度 m 代表 map 定义的颜色数目。map 的每一行定 义了一种颜色的 R 、 G 、 B 分量。索引图像中每个像素的颜 色由数据矩阵X和颜色表map共同决定。

读入一幅索引图像的语句如下: 显示一幅索引图像,可使用语句:
>>[X, map]=imread(‘trees.tif’);

>>imshow(X, map) 或者: >>image(X) %用系统当前的颜色表显示索引图像
>>colormap(map)
%将系统当前颜色表设置为map
举例: [X, map]=imread(‘trees.tif’); image(X)

当用imshow()显示彩色图片时,如果彩色图片不是索引图 像或RGB图像(在别的彩色空间,如HSI) ,则会出现无意义 的结果。
RGB图 像 直 接 显 示 HSI图 像

一幅RGB图像在MATLAB中表示为一个M×N×3的3维数组;

形成一幅RGB图像的三个图像称为红、绿、蓝分量图像; 若一幅 RGB 图像的数据类型是 double ,则它的取值范围是 [0,1];若数据类型是unit8,则取值范围是[0,255];

imshow(X, autumn)

imshow(X, copper)

imshow(X, gray(64))

MATLAB 提供了一个函数 imapprox() ,可以用较少的颜色 来近似一幅索引图像 语法:[Y, newmap]=imapprox(X, map, n, DITHER_OPTION) 说明: n 是指定的颜色数目, Y 是生成的具有 n 种颜色的近 似 索 引 图 像 的 数 据 矩 阵 , newmap 是 n 行 的 颜 色 表 。 DITHER_OPTION可以取‘nodither’或‘dither’。 举例: [X, map] = imread('trees.tif'); imshow(X,map) [Y, newmap] = imapprox(X, map, 16,'nodither'); imshow(Y, newmap)

由三幅分量图像组合得到RGB图像的命令如下: >>rgb_image=cat(3, fR, fG, fB); 分量图像必须按红、绿、蓝的顺序放置; 举例:

rgb_image=imread('peppers.png'); subplot(2,2,1),imshow(rgb_image) fR=rgb_image(:,:,1); fG=rgb_image(:,:,2); fB=rgb_image(:,:,3); rgb_red=cat(3,fR,zeros(size(fR)),zeros(size(fR))); subplot(2,2,2),imshow(rgb_red) rgb_green=cat(3,zeros(size(fR)),fG,zeros(size(fR))); subplot(2,2,3),imshow(rgb_green) rgb_blue=cat(3,zeros(size(fR)),zeros(size(fR)),fB); subplot(2,2,4),imshow(rgb_blue)
相关主题