matlab 索引图像

本文介绍了如何在MATLAB中将RGB图像转换为索引图像,并展示了如何使用rgb2ind函数减少颜色数量。通过实例演示了不同颜色数量的索引图像效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:https://zhidao.baidu.com/question/4976825.html

索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。

补充一张图帮助理解:
这里写图片描述
图中圆圈内的就是索引图像的索引表,下面的就是其对应RGB颜色表。

图中小圆圈处的索引号是5,对应RGB颜色的第5行,所以该处RGB颜色实际是0.2902 0.0627 0.0627

索引图像的作用就是体积小,方便传输,只需要把索引表传输过去,接收方用对应的RGB颜色表还原就行。

[X,map] = rgb2ind(RGB,n)

使用最小方差量化和抖动将 RGB 图像转换为索引图像 X。map 最多包含 n 个颜色。n 必须小于或等于 65,536。

function IndexImg(Imgname)%索引图像
      I_rgb = imread(Imgname);
      [I_index64,Map64] = rgb2ind(I_rgb,64);
      [I_index256,Map256] = rgb2ind(I_rgb,256);

      figure(1)
      subplot(2,1,1),imagesc(I_rgb),title('Origin');
      subplot(2,1,2),imagesc(I_index64),colormap(Map64),title('Index_Img64');

      figure(2)
      subplot(2,1,1),imagesc(I_rgb),title('Origin');
      subplot(2,1,2),imagesc(I_index256),colormap(Map256),title('Index_Img256');

end

Map64对应64种颜色!

Map64 =

0.0863    0.0902    0.1020
0.5686    0.5255    0.3569
0.2078    0.2941    0.4510
0.7647    0.7176    0.5529
0.3137    0.2980    0.2039
0.3412    0.5216    0.7725
0.8667    0.8431    0.7529
0.2471    0.3922    0.6431
0.2157    0.2118    0.1490
0.4667    0.6078    0.8078
0.4314    0.4000    0.2667
0.6196    0.7137    0.8588
0.3686    0.3961    0.4510
0.1529    0.2078    0.2824
0.5176    0.5412    0.5843
0.4667    0.6235    0.8745
0.7020    0.7765    0.8824
0.2431    0.2980    0.3647
0.8706    0.9255    0.9843
0.4000    0.5647    0.8353
0.2784    0.4667    0.7412
0.2196    0.3333    0.5412
0.5020    0.4627    0.3020
0.1294    0.1490    0.1804
0.6196    0.5843    0.4275
0.6588    0.6353    0.5608
0.7490    0.8353    0.9843
0.4784    0.5608    0.7412
0.5412    0.6588    0.8784
0.3725    0.3373    0.2157
0.3843    0.4627    0.6275
0.6039    0.6510    0.7569
0.5686    0.7020    0.9412
0.1882    0.2431    0.3490
0.4588    0.4549    0.4471
0.2784    0.2549    0.1843
0.6824    0.7804    0.9765
0.2902    0.3412    0.4510
0.4157    0.4039    0.3490
0.3608    0.5569    0.9294
0.2824    0.3725    0.5490
0.1490    0.1490    0.1255
0.7529    0.7412    0.7020
0.3059    0.4157    0.6353
0.3255    0.3373    0.3529
0.3490    0.4667    0.7020
0.4039    0.5412    0.7647
0.1216    0.1686    0.2471
0.5529    0.5294    0.4431
0.8157    0.8745    0.9843
0.4431    0.4627    0.5412
0.7961    0.8510    0.9059
0.6941    0.6314    0.4392
0.2275    0.2471    0.2784
0.3059    0.3098    0.2745
0.5373    0.6667    0.9333
0.2000    0.2157    0.2157
0.5294    0.6392    0.8078
0.4941    0.4667    0.3686
0.3765    0.3490    0.2706
0.9529    0.9725    0.9882
0.4549    0.6196    0.9725
0.6235    0.7294    0.9490
0.3725    0.4196    0.5412

K>> size(Map64)

ans =

64     3

K>> size(I_index256)
ans =

    1080        1920

输出图片:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值