Python で RGB カラーを英語のカラー名に変換する
RGB カラータプルを「 yellow 」などのカラー名に変換したいとします。 ' または 'blue'。
次のコードを考えてみましょう:
<code class="python">import Image im = Image.open("test.jpg") n, color = max(im.getcolors(im.size[0]*im.size[1])) print color # (119, 172, 152)</code>
このコードは、画像から支配的な色を抽出し、それをタプルとして保存します。このタプルを Python で色の名前に変換するにはどうすればよいですか?
解決策:
Webcolors パッケージには、rgb_to_name():
rgb_to_name(rgb_triplet, spec='css3')
<code class="python">import webcolors rgb_to_name((0, 0, 0)) # 'black'</code>
<code class="python">import math import webcolors def closest_colour(requested_colour): min_colours = {} for key, name in webcolors.CSS3_HEX_TO_NAMES.items(): r_c, g_c, b_c = webcolors.hex_to_rgb(key) rd = (r_c - requested_colour[0]) ** 2 gd = (g_c - requested_colour[1]) ** 2 bd = (b_c - requested_colour[2]) ** 2 min_colours[(rd + gd + bd)] = name return min_colours[min(min_colours.keys())]</code>
<code class="python">def get_colour_name(requested_colour): try: closest_name = actual_name = webcolors.rgb_to_name(requested_colour) except ValueError: closest_name = closest_colour(requested_colour) actual_name = None return actual_name, closest_name</code>
以上がPython で RGB カラータプルを英語のカラー名に変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。