2010-01-21 35 views
1

對於數據庫應用程序,我試圖根據色階來確定照片的平均陰影。作爲一個新手,我發現這很難解釋,所以我創建了一個簡單的圖表,顯示了我想要達到的目標。從圖像中,我如何確定陰影?

http://www.knockyoursocksoff.com/shade/

如果有人有給我一些想法的時候,我會非常感激。

祝你好運,

沃倫。

+0

你有可用來確定圖像的陰影是什麼語言(Java,C ,C++等)? ANSI SQL不能做到這一點,所以你需要一些其他應用程序作爲CRON作業或類似的東西來運行。對於C,總是有OpenCV:http://opencv.willowgarage.com/wiki/ –

+0

openCV看起來很有趣。從來沒有聽說過它,但我一直試圖以編程方式從相機中獲取圖像,而且看起來就像是這樣。 – nont

回答

0

我想我會通過只是平均的像素值開始:

for x = start_x to end_x 
for y = stary_y to end_y 
    total += getPixel(x,y) 
shade = total/(xlen*ylen) 

它去是更復雜,如果你在顏色做。

1

如果您正在使用彩色照片,則應先將選定區域從RBG(紅色,綠色,藍色)轉換爲HSL/HSV(article)。

HSL代表「色調,飽和度,亮度」。 您感興趣的數字是明度

在最一般的術語中,亮度指的是你如何感知彩色表面的亮度。很難用紅色/綠色/藍色的組件來說明一塊紅色比一塊藍色更亮/更暗。轉換爲HSL可以解決這個問題。

完成轉換後,您可以簡單地平均所選區域的亮度值。

關於亮度值的快速注意事項:從技術上講,您不能簡單地平均亮度值,因爲亮度感覺不是線性的(article)。但是,除非你正在編寫一個非常科學的應用程序,否則簡單地平均亮度就會給你一個「足夠準確」的價值。


在Adobe Photoshop中,他們把它叫做HSB(色調,飽和度,亮度)