颜色模型转换(matlab)

RGB与HSV
cmap = rgb2hsv(M):矩阵大小为m×3阶矩阵,元素取值在[0,1]之间。输入矩阵M的列分别表示红色、绿色和蓝色的强度,输出矩阵cmap的列分别表示色调、饱和度和亮度。
hsv_image = rgb2hsv(rgb_image)
rgb_image = hsv2rgb(hsv_image)

%拆分HSV
>> RGB = reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);%调整颜色色条尺寸为正方形
>> HSV = rgb2hsv(RGB);
>> H = HSV(:,:,1);
>> S = HSV(:,:,2);
>> V = HSV(:,:,3);
>> figure,
>> subplot(221),imshow(H),title('H');
>> subplot(222),imshow(S),title('S');
>> subplot(223),imshow(V),title('V');
>> subplot(224),imshow(RGB),title('RGB');

在这里插入图片描述

>> RGB = imread("E:\persional\matlab\images\ad1.tif");
>> HSV = rgb2hsv(RGB);
>> figure,
>> subplot(121),imshow(RGB),title('RGB');
>> subplot(122),imshow(HSV),title('HSV');

在这里插入图片描述
RGB与YCbCr
ycbcrmap = rgb2ycbcr(map):将RGB空间颜色映射到YCbCr空间中。map是一个m×3的矩阵,ycbcrmap也是一个m×3的矩阵,矩阵分别表示亮度Y和两种色差Cb、Cr。ycbcrmap每一行代表了等效颜色对应的行RGB空间颜色映射。
YCBCR = rgb2ycbcr(RGB):将RGB彩色图像转换成对应的YCbCr空间图像,RGB必须是m×n×3矩阵。
rgbmap = ycbcr2rgb(ycbcrmap)
RGB_image = ycbcr2rgb(ycbcr_image)

>> RGB = imread("E:\persional\matlab\images\ad1.tif");
>> ycbcr = rgb2ycbcr(RGB);
>> figure,
>> subplot(121),imshow(RGB),title('RGB');
>> subplot(122),imshow(ycbcr),title('ycbcr');

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56260304/article/details/127738997