matlab 彩色圖像、灰度圖像、二值圖像和索引圖像


彩色圖像:每個像素由R、G、B三個分量表示,每個通道取值范圍0~255。數據類型一般為8位無符號整形。

灰度圖像:每個像素只有一個采樣顏色的圖像,這類圖像通常顯示為從最暗黑色到最亮的白色的灰度。

二值圖像(黑白圖像):每個像素點只有兩種可能,0和1.0代表黑色,1代表白色。數據類型通常為1個二進制位。

索引圖像:類似於查字典,為了解決彩色圖像消耗空間大的問題,一般應用於色彩構成比較簡單的場景。

 

 

 

索引圖像包括一個數據矩陣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
  •  

輸出圖片: 

è¿éåå¾çæè¿°

 

處理圖像的函數

其中用到的工具箱函數:

函數 目的
dither 采用抖動從RGB圖像創建索引圖像
grayslice 采用閾值處理從灰度圖像創建索引圖像
gray2ind 從灰度圖像創建索引圖像
ind2gray 從索引圖像創建灰度圖像
rgb2ind 從RGB圖像創建索引圖像
ind2rgb 從索引圖像創建RGB圖像
rgb2gray

從RGB圖像創建灰度圖像

im2bw 從灰度、索引、RGB圖象創建二值圖
mat2gray 從數據矩陣創建灰度圖像

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM