2011-08-08 33 views
4

我一直在尋找一個簡單的算法來獲取和設置像素的亮度,但找不到任何東西 - 只有研究論文和複雜的庫。獲取和設置像素亮度的通用算法?

那麼有誰知道什麼是公式來計算像素的亮度?我應該用什麼公式來改變亮度?

編輯:澄清問題。我正在使用Qt與C++,但我主要是尋找一個通用的數學公式 - 我會適應它的語言。我正在談論內存中圖像的RGB像素。通過「亮度」,我的意思是與Photoshop中相同 - 更改亮度會使圖像更「白」(亮度值1.0完全是白色),減小則會使其更「黑」(值爲0.0)。

+1

做你的意思是明顯的亮度?如在灰度? –

+2

你的意思是屏幕上的像素?在記憶中?在打印機上?你的意思是絕對的亮度?相對亮度?你工作的色彩空間的gamma值是多少?你的目標是什麼操作系統?你使用什麼編程語言? –

+0

對不起,我已經更新了這個問題。 –

回答

5

將顏色表示更改爲HSV。 V組件代表並代表亮度!

  • Here該算法在PHP中實現。
  • Here是如何做到這一點在C
+0

將每個像素從RGB更改爲HSV並返回RGB可能會很慢。有沒有辦法直接改變RGB像素的亮度? –

+0

在rgb中,每個分量表示每種顏色的強度,因此可以使用(r + g + b)/ 3。在這種情況下,將所有組件除以2,例如亮度的一半。 – aioobe

+1

@aioobe:無法解釋伽馬校正。這不是RGB如何工作的。 – Svante

-1

你說的像素意味着描述?

您可以設置一個像素的亮度與「=」你只需要知道圖像

的內存佈局設置屏幕上的一個像素的圖像是稍微複雜

相關問題