2012-10-17 59 views
2

我期待通過rgb值分離「棕色」顏色。不只是1棕色,但廣泛的顏色被認爲是棕褐色,絨面革,污垢等。通過rgb值分離棕色

有關如何做到這一點的任何想法?我在想,也許如果紅色小於128,綠色是在70到138之間,藍色小於128,那麼看起來就像棕色。沿着這些線的東西。

回答

2

一個非常簡單的規則將通過3是這樣的,在pythony僞

def isBrown(red, green, blue): 

    # Kind of maximum lightness 
    if blue > parameter_1 
    return False 

    # how green or red tinted can it be 
    if absolute_value(red - green) > parameter_2: 
    return False 

    # Light brown is just yellow or orange 
    if maximum_of(red, green) > parameter_3: 
    return False 
    else: 
    return True 

調諧參數1,直到它很好地工作。也許用if absolute_value(red - green*parameter_2b) > parameter_2a:替換if absolute_value(red - green) > parameter_2:,以便根據parameter_2b選擇更多綠色或紅色的。也許把maximum_of改成別的。等等。

1

這真的取決於你認爲是棕色的。它是一個顏色範疇,具有相當高的主體間可變性和強烈的背景效果(它旁邊的顏色會改變它的外觀)。

認爲你需要使用像這樣的東西:http://www.colorpicker.com/,看看你決定的顏色的形狀,然後解決如何在算法上表達。

+0

謝謝,盧卡斯。在這個應用程序中,我無法控制在可能的棕色旁邊顯示什麼顏色 - 我沒有想過。我想知道是否有人曾經嘗試過這樣的算法,所以我沒有重新發明輪子。 – James

+1

他們有完全不同的假設和複雜程度。那就是問題所在。這完全取決於你在做什麼以及你爲什麼這樣做。如果你只是想要一種啓發式的作品,可以測試數字是否在給定的範圍內。我建議你看看這個:http://www1.icsi.berkeley.edu/~kay/claire7.pdf,但也看到我的其他答案。 – Lucas