RGB値で「茶色」の色を分離しようとしています。1つの茶色だけでなく、褐色、スエード、汚れなど、茶色として認識される幅広い色.
これを行う方法についてのアイデアはありますか?赤が 128 未満、緑が 70 ~ 138、青が 128 未満の場合、茶色に見えるのではないかと考えています。それらの線に沿った何か。
本当に単純なヒューリスティックは、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から3を調整します。おそらくに置き換えif absolute_value(red - green) > parameter_2:
てif absolute_value(red - green*parameter_2b) > parameter_2a:
、に応じてより緑がかったまたは赤みがかったものが選択されるようにしparameter_2b
ます。おそらくmaximum_of
別のものに変更します。などなど。
それは本当にあなたが茶色だと考えるものに依存します. これは、被験者間の変動性が高く、文脈の影響が強い色のカテゴリです (隣の色によって見え方が変わります)。
次のようなものを使用する必要があると考えてください: http://www.colorpicker.com/決定した色の形を見て、それをアルゴリズムで表現する方法を考え出します。