索引图像_索引图像处理的一些心得。 - CSDN
精华内容
参与话题
  • 索引图像

    千次阅读 2013-11-22 21:30:08
    索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像可把像素值“直接映射”为调色板数值。 调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。 索引模式和灰度模式比较类似,...
    索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像可把像素值“直接映射”为调色板数值。
    调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。
    索引模式和灰度模式比较类似,它的每个象素点也可以有256种颜色容量,但它可以负载彩色。灰度模式的图像最多只能有256种颜色。当图像转换成索引模式时,系统会自动根据图像上的颜色归纳出能代表大多数的256种颜色,就象一张颜色表,然后用这256种来代替整个图像上所有的颜色信息。
    索引的图像只支持一个图层,并且只有一个索引彩色通道。
    索引模式的图像就像是一块块由彩色的小瓷砖所拼成的,由于它最多只能有256种彩色,所以它所形成的文件相对其它彩色要小得多。索引模式的另一个好处是它所形成的每一个颜色都有其独立的索引标识。当这种图像在网上发布时,只要根据其索引标识将图像重新识别,它的颜色就完全还原了。

    调色板的取值决定图像的每个像素的颜色。索引图像的图像数据区保存的数据实际上是调色板中的索引值。像反色可以直接通过调整其调色板的数据进行。
    BMP、文件格式、调色板、GetBitmapBits函数使用散记
    作者:gadflycq 20130707
       
             BMP文件格式有多种,根据色彩丰富程度一般有二值(1位)、16色(4位)、256色(8位)、真彩色(24位)等。以4位为例,如果是在VC的MFC中自己在资源设计窗口画的GDI位图,一般是4位BMP图,即每个象素占半个字节,每个象素的半个字节值实际上是调色板中的索引值,通过索引值查找调色板中对应序号的颜色值。
             BMP文件格式头文件,调色板的起始位置在36h,长度N×4,N为颜色数,如果4位图,颜色数N=16。每个索引占4字节,依次为B、G、R、保留。
             比如某BMP文件为4位图,从第00H到第35H为头文件信息,从36H到75H为调色板信息,则第76H开始是象素值。若第76H字节=0F,则表示图象第0行第0列(左下角)象素颜色索引值为0,第0行第1列象素颜色索引值为F,然后根据索引值查找调色板中对应的颜色信息。
             索引值为0,表示调色板的第1个索引,即从36H到39H,假如36H到39H的值分别为255、0、0、0,表示第0行第0列的象素为蓝色。
             索引值为F,表示调色板中第16个索引,即从调色板开始往后偏移(16-1)×4=60个字节(3CH),即36H+3CH=72H开始。假如72H到75H的值为0、0、255、0,表示第0行第1列象素颜色为红色。
             以上是以4位BMP文件格式为例在硬盘上存储的数值情况。如果是通过以下程序读取图象数据到内存,就不是这样了。
                        CBitmap bitmap;
                        bitmap.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1为4位BMP图象格式
                        int s=33*33*4;   //假设图象尺寸为33×33
                        BYTE *gimg=new BYTE[s];
                         bitmap.GetBitmapBits(s,gimg);
             此处GetBitmapBits函数在读取象素值到缓冲区的时候,自动完成了象素索引值和调色板颜色值的替换,即gimg开始的内存中存储的直接就是每象素4字节的颜色值,即: 
                       gimg[0]:第0行第0列象素的B分量,
                       gimg[1]:第0行第0列象素的G分量,
                       gimg[2]:第0行第0列象素的R分量,
                       gimg[3]:保留,
                       gimg[3]:第0行第1列象素的B分量 
                                    …………
                                    …………


    展开全文
  • 1. 索引图像  索引图像包括一个数据矩阵X和一个颜色映射(调色板)矩阵map。  数据矩阵X可以有uint8,uint16或double类型的。颜色映射矩阵map是一个N*3的数据阵列,其中每个元素都是位于[0,1]之间的double类型。...

    1. 索引图像

               索引图像包括一个数据矩阵X和一个颜色映射(调色板)矩阵map。

               数据矩阵X可以有uint8,uint16或double类型的。颜色映射矩阵map是一个N*3的数据阵列,其中每个元素都是位于[0,1]之间的double类型。map矩阵每一行有3列,分别表示红色(R),绿色(G)和蓝色(B)。每个像素的颜色通过X中的颜色值作为map中的下标来获取,即X中的元素:1指向map中的第一行所有元素,10指向map中的第十行所有元素。 i指向map中的第i行所有元素。

    2.RGB图像

               RGB图像又称真彩图像,它利用R、G、B三个分量来表示一个颜色,通过RGB三种基本颜色可以组合出任意颜色。对一个大小为M*N的真彩图像来说,在Matlab中的存储为一个M*N*3的矩阵,其中三颜色分量存储在矩阵的第三维中。

    3.灰度图像

               灰度图像一般由uint8、uint16或double类型的数组来描述,其实质就是一个数据矩阵。该矩阵中的每一个元素值表示了一个像素点。通常0表示黑色,uint8中的255,uint16中的65535,double中的1表示白色(大于相对应类型的值也表示白色)。

    4.二值图像

                是指在在图像中,灰度等级只有两种,即要么是0要么是1,没有其他任何中间过渡的灰度值。其中0代表黑色,1代表白色。二值图像一般用来描述文字或者图形,其优点是占用空间少;缺点是当描述人物或者风景时,只能描述其轮廓,不能描述细节。

     

    展开全文
  • matlab 索引图像

    千次阅读 2018-06-21 17:25:47
    索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,...

    转自: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
    

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

    展开全文
  • matlab代码,用于图像处理放向研究。把图像变成变灰度图像,索引图像或二值图像。
  • 彩色图像,每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。RGB图像与索引图像一样都...但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩...

    参考:http://www.sohu.com/a/50526196_196473
    https://blog.csdn.net/smf0504/article/details/72899725
    https://www.cnblogs.com/xixixing/p/5826871.html
    照片:
    在这里插入图片描述
    二值图像表示为logical数组(0或1,分别表 示黑和白)
    数据类型uint8(8位无符号整数):
    uint8,表示变量是无符号整数,范围是0到255.uint8是指0~2^8-1 = 255数据类型,一般在图像处理中很常见。
    参考:Matlab图像处理中uint8和double的问题
    为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像
    imread把灰度图像存入一个8位矩阵,当为RGB图像时,就存入8位RGB矩阵中。
    因此,matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。所以要先将图像转为double格式的才能运算。
    意思也就是显示的时候用uint8 运算的时候用double;

    即,主要是为了保持运算精度, 一般来说用double 来完成复杂的运算。而在存储的时候的一般存储为uint8类型,节省存储空间。

    im2double():将图象数组转换成double精度类型
    im2uint8():将图象数组转换成unit8类型
    im2uint16():将图象数组转换成unit16类型
    在这里插入图片描述
    因为uint8的图像是灰度图像,也就是 像素值是从0~255变化的,而转换为double后像素值成了0-1变化,也就是说0是黑色,1是白色

    彩色图像,每个像素通常是由红(R)、绿(G)、蓝(B)三个分量来表示的,分量介于(0,255)。RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。

    灰度图像(gray image)是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑色与白色两种颜色;但是,灰度图像在黑色与白色之间还有许多级的颜色深度。灰度图像经常是在单个电磁波频谱如可见光内测量每个像素的亮度得到的,用于显示的灰度图像通常用每个采样像素8位的非线性尺度来保存,这样可以有256级灰度(如果用16位,则有65536级)。

    二值图像(binary image),即一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。

    索引图像即它的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值,如某一像素的灰度值为64,则该像素就与MAP中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说,图像在屏幕上显示时,每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。索引图像的数据类型一般为8位无符号整形(int8),相应索引矩阵MAP的大小为256Ⅹ3,因此一般索引图像只能同时显示256种颜色,但通过改变索引矩阵,颜色的类型可以调整。索引图像的数据类型也可采用双精度浮点型(double)。索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。

    展开全文
  • 索引图像处理的一些心得

    千次阅读 2015-03-25 23:18:04
    总结:索引图像像素点存放的是调色板中的下标,颜色不容易失真,存储文件小的优势。索引图像对于反色,颜色平衡,去色,颜色替代非常方便,直接修改调色板即可。但是索引图像在滤镜,通道混合,透明叠加,旋转,缩放...
  • 索引图像读取与分析理解

    千次阅读 2019-06-13 20:14:34
    索引图像 最近在做语义分割相关的内容,但是一直对数据集(如voc2012)的图像格式不太清楚,查阅资料在此进行记录。 相关链接: 1、索引图像概念:https://baike.baidu.com/item/索引图像 2、博客解释:...
  • 本篇只讲应用不讲原理 在进行数字图像处理时,需要将图像转换成灰度...加载完图片后可使用imfinfo()函数查看图像信息,通过colorType判断图像是什么类型,如为indexed即图像是索引图像。在Matlab函数库中可查找到
  • 彩色图像:每个像素由R、G、B三个分量表示,每个通道取值范围0~255。数据类型一般为8位无符号整形。...索引图像:类似于查字典,为了解决彩色图像消耗空间大的问题,一般应用于色彩构成比较简单的场景...
  • MATLAB真彩色图像转换为索引

    千次阅读 2019-01-08 18:51:26
    下面来介绍一下如何在Matlab中将真彩色图像转换为索引图,具体步骤如下: 1、打开MATLAB,在其主界面的编辑器中写入下列代码: load trees %加载图片 I=ind2gray(X,map); %真彩色转索引图 imshow(X,map) figure,...
  • 图像的四种类型及简述

    万次阅读 2017-11-08 10:43:26
    索引图像  4. 真彩色RGB图像   1. 二值图像 一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型...
  • RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,...
  • MATLAB中的图像类型

    千次阅读 2011-01-05 16:42:00
    1、索引图像 索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。...
  • 图像处理中的matlab使用

    万次阅读 2016-12-20 11:10:24
    图像的矩阵表示 类和图像类型 虽然使用的是整数坐标, 但 MATLAB 中的像素值(亮度)并未限制为整数。 表 1-1 列出了 MATLAB 和图像处理工具箱为描述像素值而支持的各种类。 表中的前 8 项是数值型的数据类,第 9...
  • 在计算机中,按照颜色和灰度的多少可以将图像分为灰度图像、二值图像、索引图像和RGB图像四种基本类型。在计算机中,通常是以数组(或矩阵)的形式储存图像的。 灰度图像: 灰度图像矩阵元素的取值范围...
  • 1.MATLAB图像处理基础知识

    万次阅读 多人点赞 2017-05-06 14:20:57
    在MATLAB中,基本数据结构为数列,大部分图像也是以数列的方式存储的,例如,包含1024列768行的彩色图像,在MATLAB中被存储为1024X768的矩阵;其中,矩阵的值为色彩值。这样就把图像变成了数列了,MATLAB就可以使用...
  • 首先呢我们要明白各种图片格式,不同的图片格式成像也是不同的,对于索引类型的图片,其文件头部有一个颜色表,这个表按照一定的规律存储了所有的可能在这张图片中出现的颜色。它的每一个点的像素值(ARGB)并不是...
  • 以及rgb2gray(),ind2gray()函数,很好奇索引图像和RGB图像有什么区别,上网查了写资料,发现了索引图像和RGB图像都是彩色图像的表示方式,算是一种原始数据的表示标准吧,位图图像和矢量图像是具体存储在硬盘上的两...
  • bmp图像的定义:bmp-百度百科 里面这样说到: 典型的BMP图像文件由四部分组成: 1:位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 2:位图信息数据结构,它包含有BMP图像的宽、高、压缩方法...
  • RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接...
1 2 3 4 5 ... 20
收藏数 112,080
精华内容 44,832
关键字:

索引图像