C#影像處理——ColorMatrix簡介

來源:互聯網
上載者:User

GDI+ 提供用於儲存和操作映像的Image 和Bitmap 類。Image 和Bitmap 對象用一個 32 位元字儲存每個像素的顏色:紅、綠、藍和 Alpha 各 8 位。這四個分量的值都是 0 到 255,其中 0 表示沒有亮度,255 表示最大亮度。alpha 分量指定顏色的透明度:0 表示完全透明,255 表示完全不透明。

顏色向量採用 4 元組形式(紅色、綠色、藍色、alpha)。例如,顏色向量 (0, 255, 0, 255) 表示一種沒有紅色和藍色但綠色達到最大亮度的不透明顏色。

表示顏色的另一種慣例是用數字 1 表示亮度達到最大。通過使用這種約定,上一段中描述的顏色將可以由向量 (0, 1, 0, 1) 表示。在執行顏色變換時,GDI+ 遵循使用 1 為最大亮度的慣例。

可通過用 4×4 矩陣乘以這些顏色向量將線性變換(旋轉和縮放等)應用到顏色向量中。但是,您不能使用 4×4 矩陣進行平移(非線性)。如果在每個顏色向量中再添加一個虛擬第 5 座標(例如,數字 1),則可使用 5×5 矩陣應用任何組合形式的線性變換和平移。由線性變換組成的後跟平移的變換稱為仿射變換。

例如,假設您希望從顏色 (0.2, 0.0, 0.4, 1.0) 開始並應用下面的變換:

將紅色分量乘以 2。

將 0.2 添加到紅色、綠色和藍色分量中。

下面的矩陣乘法將按照列出的順序進行這對變換。

顏色矩陣的元素按照先行後列(從 0 開始)的順序進行索引。例如,矩陣 M 的第五行第三列由 M[4][2] 表示。

5×5 單位矩陣(在下面的插圖中顯示)在對角線上為 1,在其他任何地方為 0。如果用單位矩陣乘以顏色向量,則顏色向量不會發生改變。形成顏色變換矩陣的一種簡便方法是從單位矩陣開始,然後進行較小的改動以產生所需的變換。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.