RGB彩色工业标准到CIEXYZ空间转换示例:
clc;
close all;
clear all;
rgb = imread('lena.bmp');
subplot(2,3,1),imshow(rgb,'InitialMagnification','fit');title('原图像');
rgb =double(rgb);%双精度化(0-255)
x = 0.607*rgb(:,:,1)+0.174*rgb(:,:,2)+0.201*rgb(:,:,3);
x = mat2gray(x);%把矩阵转化为灰度图像
y = 0.299*rgb(:,:,1)+0.587*rgb(:,:,2)+0.114*rgb(:,:,3);
y = mat2gray(y);
z = 0.066*rgb(:,:,2)+0.117*rgb(:,:,3);
z = mat2gray(z);
xyz = cat(3,x,y,z);%把x,y,z连在一起
subplot(2,3,3),imshow(xyz);title('XYZ图像');
subplot(2,3,4),imshow(x);title('X图像');
subplot(2,3,5),imshow(y);title('Y图像');
subplot(2,3,6),imshow(z);title('Z图像');
运行结果:
注:Matlab中没有lena.bmp文件,可以从网上下载,此外imshow(rgb,'notruesize')在Matlab2012中不在支持应改为 imshow(rgb,'InitialMagnification','fit')。
<pre name="code" class="html">