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')
이 함수는 정수 RGB 값의 3튜플을 지정된 색상 사양(예: 'css3') 내에서 해당 색상 이름으로 변환합니다. 예:
<code class="python">import webcolors rgb_to_name((0, 0, 0)) # 'black'</code>
주어진 RGB 튜플에 가장 가까운 색상 이름을 찾으려면 다음과 같은 사용자 정의 기능을 사용할 수 있습니다.
<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>
이 기능을 사용하면 주어진 RGB 튜플에 대해 정확한 색상 이름이나 가장 가까운 근사값을 모두 얻을 수 있습니다.
위 내용은 Python에서 RGB 색상 튜플을 영어 색상 이름으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!