灰度到RGB轉換



我們已經在影像型別的教程中定義了RGB顏色模型和灰度格式。現在我們將把彩色影像轉換為灰度影像。有兩種轉換方法,各有優缺點。方法如下:

  • 平均法
  • 加權法或亮度法

平均法

平均法是最簡單的方法。你只需要取三種顏色的平均值。因為它是RGB影像,所以這意味著你需要將r、g和b相加,然後除以3,就可以得到你想要的灰度影像。

它是這樣做的:

灰度 = (R + G + B) / 3

例如

rgb

如果你有一個像上面顯示的彩色影像,並且你想使用平均法將其轉換為灰度影像,則會出現以下結果。

rgb_gray

解釋

有一點需要確保,原圖發生了變化。這意味著我們的平均法有效。但結果並不理想。我們想把影像轉換成灰度,但這卻變成了一個相當黑的影像。

問題

這個問題出現的原因是,我們取了三種顏色的平均值。由於三種不同的顏色具有三種不同的波長,並且對影像的形成有其自身的貢獻,因此我們必須根據它們的貢獻來取平均值,而不是使用平均法平均地進行。現在我們正在做的是:

紅色33%,綠色33%,藍色33%

我們取每種顏色的33%,這意味著每個部分對影像的貢獻相同。但實際上並非如此。亮度法給出了這個問題的解決方案。

加權法或亮度法

你已經看到了平均法中出現的問題。加權法解決了這個問題。由於紅色在三種顏色中波長最長,綠色不僅波長比紅色短,而且綠色更有利於眼睛舒適。

這意味著我們必須減少紅色的貢獻,增加綠色的貢獻,並將藍色的貢獻放在兩者之間。

因此,形成的新公式是

新的灰度影像 = ((0.3 * R) + (0.59 * G) + (0.11 * B))。

根據這個公式,紅色貢獻了30%,綠色貢獻了59%(三種顏色中最大),藍色貢獻了11%。

將此公式應用於影像,我們得到:

原圖

rgb

灰度影像

weighted_gray

解釋

如你所見,影像現在已使用加權法正確轉換為灰度。與平均法的結果相比,這張影像更亮。

廣告
© . All rights reserved.