用matlab代码RGB,CMYK,HSI,lab颜色模型分解彩色图片
时间: 2023-10-07 13:09:58 浏览: 154
分解彩色图像
以下是用Matlab代码实现RGB、CMYK、HSI、Lab颜色模型分解彩色图片的示例:
```
% 读入彩色图片
img = imread('color_image.jpg');
% RGB颜色模型
r = img(:,:,1);
g = img(:,:,2);
b = img(:,:,3);
% CMYK颜色模型
cmyk = rgb2cmyk(img);
c = cmyk(:,:,1);
m = cmyk(:,:,2);
y = cmyk(:,:,3);
k = cmyk(:,:,4);
% HSI颜色模型
hsi = rgb2hsi(img);
h = hsi(:,:,1);
s = hsi(:,:,2);
i = hsi(:,:,3);
% Lab颜色模型
lab = rgb2lab(img);
l = lab(:,:,1);
a = lab(:,:,2);
b = lab(:,:,3);
% 显示分离出的通道
figure;
subplot(2,2,1); imshow(r); title('R通道');
subplot(2,2,2); imshow(g); title('G通道');
subplot(2,2,3); imshow(b); title('B通道');
subplot(2,2,4); imshow(img); title('原图');
figure;
subplot(2,2,1); imshow(c); title('C通道');
subplot(2,2,2); imshow(m); title('M通道');
subplot(2,2,3); imshow(y); title('Y通道');
subplot(2,2,4); imshow(k); title('K通道');
figure;
subplot(2,2,1); imshow(h); title('H通道');
subplot(2,2,2); imshow(s); title('S通道');
subplot(2,2,3); imshow(i); title('I通道');
subplot(2,2,4); imshow(img); title('原图');
figure;
subplot(2,2,1); imshow(l); title('L通道');
subplot(2,2,2); imshow(a); title('a通道');
subplot(2,2,3); imshow(b); title('b通道');
subplot(2,2,4); imshow(img); title('原图');
```
其中,`imread`函数用于读取彩色图片,`rgb2cmyk`、`rgb2hsi`、`rgb2lab`函数用于将RGB颜色模型转换为CMYK、HSI、Lab颜色模型,`subplot`函数用于绘制分离出的通道图像。
阅读全文