我想要執行一個簡單的圖像分析,我可以確定圖像的哪個部分對應某個「控制顏色範圍」。我將圖像縮小爲包含RGB值的二維像素圖,但現在我試圖確定某個像素中包含多少紅色。如何計算RGB顏色中的顏色分量「數量」
我對顏色知之甚少,即使找到正確的術語來開始我的搜索,我也很難找到。是否有一個簡單的公式來計算RGB顏色中包含的RGB分量(控制顏色)的平均或大部分?我們的目標是提供一個控制顏色和它存在的量的百分比,這樣我就可以從像素圖中的其他顏色中濾除它(即該像素爲80%紅色)。
感謝您的想法。
我想要執行一個簡單的圖像分析,我可以確定圖像的哪個部分對應某個「控制顏色範圍」。我將圖像縮小爲包含RGB值的二維像素圖,但現在我試圖確定某個像素中包含多少紅色。如何計算RGB顏色中的顏色分量「數量」
我對顏色知之甚少,即使找到正確的術語來開始我的搜索,我也很難找到。是否有一個簡單的公式來計算RGB顏色中包含的RGB分量(控制顏色)的平均或大部分?我們的目標是提供一個控制顏色和它存在的量的百分比,這樣我就可以從像素圖中的其他顏色中濾除它(即該像素爲80%紅色)。
感謝您的想法。
這是一個想法。
將圖像加載到RGB顏色數組中。
檢查數組的每個條目以查找該像素中最大的顏色數量。
下面是我想解釋的一些小圖。
| R | G | B |
| 0 | 1 | 255 |
經過你看到藍色是最接近255的數字。將它添加到一個整數。
int r = 0;
int g = 0;
int b = 0;
b = b + 1;
當您完成分析的陣列檢查每個條目,看看什麼顏色是最接近255
r = 255 - r;
g = 255 - r;
b = 255 - r;
比較每個值以找到最大的數字。
他們你走了。
也許我誤解了,但我認爲這將決定整個圖像的平均值,但我試圖確定一個RGB顏色是否滿足一定顏色的閾值。例如255,10,10確實是紅色,但是255,190,92更黃。我怎麼知道第一個值是紅色的,因爲這兩個紅色分量都是255。 – GenericPtr
是的這段代碼會爲整個圖像找到它。爲了找出它是否更黃,那麼你會需要某種數據庫。或者您需要黃色的最小值和最大值。你試圖完成的任務不是一天可以完成的,而是更像是幾周。對於至少爲整個圖像提供代碼的情況如何?) – Mozzie
您是否檢查過Color.GetHue函數/ HSV系統而不是RGB值? – RelevantUsername
你可以顯示一些你的代碼你已經做了什麼? – Danilo
我不知道如何使用色相,所以我沒有考慮它。 NSColor提供了一種檢索色調的方法,但是在時間/ CPU和內存分配方面確實很昂貴。如果我知道這是需要的,我認爲這可以更有效地計算。 – GenericPtr