2011-09-08 49 views
0

我正在編寫一個應用程序,顯示不同的色板以幫助具有顏色協調功能的人。我怎樣才能找到真實世界物體的RGB值?RGB值檢測和實現

例如,其中一種顏色是紅蘋果,但顯然一個紅蘋果不只是紅色。它有其他顏色的暗示。

+0

攝像頭的相關方法和說明連接到你的電腦將會有所幫助。 – bmargulies

回答

0

嗯,老實說這不是一件容易的事情,但一個好的起點應該是數碼相機和/或平板掃描儀。

一旦你在電腦上有圖像,那麼這個任務就更容易了,因爲你只需要使用photoshop或gimp等圖片/照片編輯軟件包在你的應用程序中使用它們之前對它們進行採樣。

一旦你有幾個不同的樣本,那麼你需要平均他們,這很容易做到。比方說,你花了5個樣本的RGB值:

255,50,10 
    250,40,11 
    253,51,15 
    248,60,13 
    254,45,20 

您只需添加上去的,你有多少樣本拿了那麼每個組件和鴻溝:

Red = (255 + 250 + 253 + 248 + 254)/5 
    Green = (50 + 40 + 51 + 60 + 45)/5 
    Blue = (10 + 11 + 15 + 13 + 20)/5 

現在,如果你問的是什麼如何我是否會在程序代碼中自動執行此操作,這是一個完全不同的水壺,首先您需要像網絡攝像頭那樣的東西,然後您需要編寫代碼以捕捉網絡攝像頭中的圖像,然後一旦您擁有了圖像你不僅需要選擇顏色的能力,而且要真正找出圖像中你想從實際中選取顏色的對象在哪裏。

現在,我會看看使用第一種方法,這有點手動我同意,但更容易,會讓你開始。

做第二次數學所需的圖像處理已經讓軟件工程師們頭痛多年,現在仍然不是一個完美的科學......這是在我們開始思考數學之前。

+0

我的攝像頭連接到我的筆記本電腦,但我只是希望我可以編寫一個簡單的Java程序來將顏色值保存到文件中。我正在考慮像在框架中間拿着物體並在中心獲取顏色 – bedward

+0

如果是這樣,請考慮從照片中獲得的RGB值將根據光線,位置和相機而變化很大設置。 – daniloquio

+0

我不得不同意daniloquio在這裏,即使在相同的位置,它也有可能在顏色和光線上獲得截然不同的變化。如果您將此用於您提及的目的,那麼您確實希望每次都嘗試100%來獲得相同的色調。 – shawty

0

對於每一個對象,我會做這種方式:

  1. GOOLGE使用圖像搜索你想要的物體的照片。
  2. 選擇具有最準確的色彩,說,你一個「紅蘋果」爲例的想法之一。

- 如果您有對象的數碼照片,您可以跳過1和2。

  1. 開啓在油漆圖象;你可以按下鍵盤上的「Impr Pant」鍵,打開Paint,然後「ctrl + v」將粘貼屏幕上的內容。
  2. 選擇油漆的顏色挑選工具(一個像滴管),然後在圖像上,正好與你想要的顏色的地方。
  3. 從菜單中選擇「顏色 - >編輯顏色」,然後在打開的顏色調色板,在「自定義顏色」 CLIC。
  4. 你明白了,那裏的RGB值就在你的右邊。

必須有一個更簡單的方法,但這會工作。

+0

谷歌圖像可能會工作,但它會花費我很長一段時間。由於我學習了一些Java,我希望能夠編寫一個程序來爲我做這件事 – bedward

+0

根據你的目的,我不認爲這是一個好主意。 [注意:我的方法給了我{紅蘋果= RGB(158,28,36)},但對於不同的人和不同的蘋果口味會有很大改變] – daniloquio

0

如果你正在尋找一個編程解決方案,那麼你會看看bitwise operations。這裏的一般想法是讀取二進制根中的圖像,然後將這些位邏輯轉換爲RGB值。取決於編程語言,有幾種方法可以做到這一點。這是一個Actionscript3的方法。

http://www.flashandmath.com/intermediate/rgbs/explanations.html

此外,如果你想找的平均顏色看看這裏,(對於AS3)

http://blog.soulwire.co.uk/code/actionscript-3/extract-average-colours-from-bitmapdata

爲Java

Bitwise version of finding RGB in java