图像类型的转换(matlab)

您所在的位置:网站首页 rgb转换为索引图像的方法 图像类型的转换(matlab)

图像类型的转换(matlab)

2024-07-17 02:40| 来源: 网络整理| 查看: 265

1.引言

在许多图像处理过程中,常常需要进行图像类型转换,各种图像类型转换关系如图所示:

在这里插入图片描述

2.图像类型转换成函数

1.dither --图像抖动,将灰度图片变成二值图或者将真彩色图抖动成索引图象。 2.gray2ind --将灰度图像转换成索引图象。 3.grayslice --通过设定阈值将灰度图像转换成索引色图像。 4.im2bw – 通过设定阈值将真彩色、索引色、灰度图转换成二值图像。 5.ind2gray --将索引色图像转换成灰度图像。 6.ind2rgb --将索引色图像转换成真彩色图像。 7.mat2gray --将数值矩阵转换成灰度图像。 8.rgb2gray --将真彩色图像转换成灰度图像。 9.rgb2ind --将真彩色图像转换成索引色图像。

3.1 RGB图像转换为灰度图像

(1).X = rgb2gray(I):I表示RGB图像,X表示转换后的灰度图像。

close all;clear all;clc; I = imread('输入图片名称'); X = rgb2gray(I); figure; subplot(121),imshow(I); subplot(122),imshow(X);

(2).newmap = rgb2gray(map):该函数是将彩色颜色映射表map转换成灰度颜色映射表。注:如果输入的是真彩色图像,则可以是uint8或者double类型,输入图像与输出类型相同。如果输入的颜色映射表,则输入和输出都是double类型。

close all;clear all;clc; [X,map] = imread('输入图片名称'); newmap = rgb2gray(map); figure,imshow(X,map); figure,imshow(X,newmap); whos map //查看文件各属性及属性值 whos newmap 3.2 RGB图像转换为索引图像

在MATLAB中,将真彩色图像转换成为索引图像直接调用函数rgb2ind()。 (1)均匀量化的方法:[X,map] = rgb2ind(I,tol) I:原图像RGB; [X,map]对应生成的索引图象; tol:范围为0.0~1.0map包含至少(floor(1+tol)+1)^3个颜色。 (2)最小方差量化方法:[X,map] = rgb2ind(I,N) I:原图像RGB; [X,map]对应生成的索引图象; N:map中包含至少N个颜色。 (3)颜色表近似法:[X,map] = rgb2ind(I,map) I:原图像RGB; [X,map]对应生成的索引图象; map:颜色与RGB图像中颜色匹配最相近的颜色。

close all;clear all;clc; RGB = imread('输入图片名称') [X1,map1] = rgb2ind(RGB,64); {X2,map2] = rgb2ind(RGB,0.2); map3 = colorcube(128); X3 = rgb2ind(RGB,map3); figure; subpolt(131);imshow(X1,map1); subplot(132);imshow(X2,map2); subplot(133);imshow(X3,map3); 3.3 灰度图像转换为索引图象

(1) [X,map] = gray2ind(I,n):灰度函数转换为索引图象 I:灰度图像; n:灰度级数,默认值64; map:颜色值为颜色图gray(n)中的颜色值。 (2)[X,map] = gray2ind(BW,n):二值图像BW转换成索引图象 I:灰度图像; n:灰度级数,默认值2; map:颜色值为颜色图gray(n)中的颜色值。

close all;clear all;clc; I = imread('输入图片名称'); [X,map] = gray2ind(I,8); figure,imshow(I); figure,imshow(X,map);

(3) I = grayslice(G,n):灰度图像中像素灰度均匀量化为n个等级并转换为索引图象 G:灰度图像; n:灰度级; I:转换后的索引图像。 (4) I = grayslice(G,v):将灰度图像按照阈值矢量v进行阈值划分并转换为索引图象 G:灰度图像; v:每一个元素都在0和1之间; I:转换后的索引图像。

close all;clear all;clc; I = imread('输入图片名称'); X = grayslice(I,32); figure,imshow(I); figure,imshow(I,jet(32));//jet()函数生成一个颜色映射表 3.4 索引图像转换为灰度图像

I = ind2gray(X,map):将具有颜色映射表map的索引图象转换为灰度图像 [X,map]:索引图像; I:表示转换后的灰度图像。输入类型为double型或者uint8型,但是输出为double型。

close all;clear all;clc; [X,map] = imread('输入图片名称'); I = ind2gray(X,map); figure,imshow(X,map); figure,imshow(I); 3.5 索引图像转换为RGB图像

RGB = ind2rgb(X,map):将索引图像[X,map]转换成RGB图像 [X,map]:索引图像; RGB:转换后的真彩图像; 转换过程形成一个三维数组,然后将索引图像的颜色赋值给三维数组,输入图像的类型为:double、uint8或者uint16, 输出类型为:double。

close all;clear all;clc; [X,map] = imread('输入图片名称'); RGB = ind2rgb(X,map); figure,imshow(X,map); figure,imshow(RGB); 3.6 二值图像的转换

(1) BW = im2bw(I,level):通过设置阈值参数,将灰度图像转换成为二值图像 I:灰度图像; level:设置的阈值参数,取值为[0,1];; BW:二值图像。

close all;clear all;clc; I = imread('输入图片名称'); BW1 = im2bw(I,0.3); BW2 = im2bw(I,0.7); figure; subplot(131),imshow(I); subplot(132),imshow(BW1); subplot(133),imshow(BW2);

(2) BW = im2bw(X,map,level):通过设置阈值参数level,将索引色图像转换为二值图像 [X,map]:索引图像; level:设置的阈值参数,取值为[0,1]; BW:二值图像。

close all;clear all;clc; load trees; BW = im2bw(X,map,0.4); figure,imshow(X,map); figure,imshow(BW);

(3) BW = im2bw(I,level):将RGB转换成为二值图 I:RGB图像; level:设置的阈值参数,取值为[0,1];; BW:二值图像。

close all;clear all;clc; I = imread('输入图片名称'); BW = im2bw(I,0.5) figure,imshow(I); figure,imshow(BW); 3.7 数值矩阵转换为灰度图像

I = mat2gray(X,[xmin,xmax]):按照指定的取值区间[xmin,xmax]将数据矩阵X转换成灰度图像,矩阵中小于xmin的值取0,大于xmax的值取1;如果不设置,将数据矩阵X中的最小值设为xmin,最大值设置为xmax。

close all;clear all;clc; X = magic(256); I = mat2gray(X); figure,imshow(I);


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3