簡體   English   中英

RGB圖像的表示是什么?

[英]What is the representation of RGB image?

我已經開始學習圖像處理,我被困在這里,請幫助我。

灰度圖像由 M 和 N 矩陣表示,其中矩陣的每個元素的值為 [0,255],表示強度。

例子:

    row 1 : 2,120
    row 2 : 190, 40

這是一個 2 x 2 的矩陣,它是一個灰度圖像。

現在我很困惑,無法獲得如何表示每個像素值或強度是三個值的混合的 RGB 圖像。

定義說,

RGB 圖像用 M×N×3 陣列表示,其中每個 3 向量對應於每個像素的紅色、綠色和藍色強度。

但我無法理解上面的句子。 請幫我理解意思。

先感謝您。

灰度圖像中,每個像素都可以用單個數字表示,該數字的范圍通常為 0 到 255。該值決定了像素顯示的暗度(例如,0 是黑色,而 255 是亮白色)。

彩色圖像中,每個像素可以由三個數字的向量表示(每個數字的范圍為 0 到 255),用於三個主要顏色通道:紅色、綠色和藍色。 這三個紅色、綠色和藍色 (RGB) 值一起使用來決定該像素的顏色。 例如,紫色可能表示為 128、0、128(中等強度的紅色和藍色的混合,沒有綠色)。

現在我將以你的例子來讓你理解給定的定義。

假設一個 2 x 2 矩陣的彩色圖像:

第 1 行:綠色、藍色

row2:紅色,黑色

如果我用其 RGB 值表示上述顏色:

第 1 行:[0,255,0],[0,0,255]

第 2 行:[255,0,0],[0,0,0]

因此,M-by-N-by 3 描述了 M 是矩陣的行數,N 是矩陣的列數,3 是表示 RGB 值的向量的大小。 是像素網格中的 RGB 表示。

從概念上講,M×N RGB 圖像是一個 2D 矩陣,其中每個矩陣元素是一個具有 3 個值的向量。

您可以通過多種不同的方式在物理內存中表示這一點。 例如:

  1. 使用 MxN 數組,其中每個元素都是 24 位整數。 每個整數由紅色、綠色和藍色值(每個 8 位整數)組成,例如: red<<16 | green<<8 | blue red<<16 | green<<8 | blue red<<16 | green<<8 | blue (或等效的red*256*256 + green*256 + blue )。

  2. 使用 3 個獨立的 MxN 陣列,每個顏色通道一個。

  3. 使用 MxNx3 數組,其中第三個維度是“顏色維度”。 您可以將其索引為img[i,j,k]k為 0、1 或 2。因此,一個像素由 3 個數組元素組成。

最后一種格式是問題中描述的格式。 這樣的 3D 數組通常實現為 1D 數組,索引轉換如下:

index = i + j * M + k * N*M;

或者像這樣:

index = i * N*3 + j * 3 + k;

或者以另一種不同的順序,這無關緊要(我們在這里假設是基於 0 的索引)。 因此,該數組有M*N*3元素,其中的三個元素一起表示一個像素。

(A)RGB 像素通常保存為整數(32 位)。 因此,每個通道由 8 位表示(為您提供 0 到 255 之間的范圍)。 數字的前8位(32-24)代表alpha通道,接下來的8位代表紅色通道(24-16),接下來的8位代表綠色通道(16-8),最后8位代表藍色通道. 所以數組中的每個數字實際上代表了透明度 (alpha) 和各個顏色通道的 3 個強度值,因此也可以看作是一個向量。 M-by-N-by3描述了一個 MxN 矩陣,該矩陣包含每個像素的向量(整數)以描述其顏色。

該定義進一步讓您了解如何在三維空間中繪制/查看像素值。 想象一個3D 圖表,其中每個軸代表一個顏色通道。 在圖表中添加特定顏色時會得到什么? 描述顏色在源自原點的三維空間中的位置的向量!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM