Google や Baidu を使用して写真を検索すると、写真の色のオプションがあることがわかります。これは人為的に分割されているに違いないと考える人もいるかもしれません。もちろん冗談ですが、大量の写真は機械によってのみ認識されます。
この機能はPythonを使用して実装できますか?答えは、以下のコード: Python の PIL モジュールの強力な画像処理機能を使用して行うことができます:
import colorsys
def get_dominant_color(image):
#出力 RGB カラー値のカラー モード変換。
Image = image.convert('RGBA')
#サムネイル生成、計算量削減、CPU負荷軽減
image.thumbnail((200, 200))
max_s core = None
dominant_color = None
for count, (r, g, b, a) in image.getcolors(image.size[0] * image.size[1]):
# 純粋な黒をスキップ
if a == 0:
続き
彩度 = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 25 5.0)[1]
* 4130 + b * 802 + 4096 + 131072) >> 13, 235)
y = (y -16.0) /(235-16)
#ハイライト色を無視してください。 if score > max_score: max_score = score dominant_color = (r, g, b) return do minant_color 使用方法: from PIL import Image print get_dominant_color(Image .open('logo.jpg'))これは rgb カラーを返しますが、この値は非常に正確な範囲なので、どのように実装すればよいでしょうか 百度の写真のような色域はどうなるのでしょうか? ?実際、方法は非常に簡単です。r/g/b はすべて 0 ~ 255 の値であり、これら 3 つの値を等間隔に分割し、それらを組み合わせて近似値を取得するだけです。例:0~127、128~255に分けて自由に組み合わせて8通りの組み合わせができ、代表的な色を選ぶだけです。
もちろん、私は例を示しているだけです。より細かく分割して、表示される色をより正確にすることもできます~~ 早速試してみましょう