>  기사  >  백엔드 개발  >  Python 버전에서 그림이나 로고의 기본 색상(색상 추세)을 가져옵니다.

Python 버전에서 그림이나 로고의 기본 색상(색상 추세)을 가져옵니다.

高洛峰
高洛峰원래의
2016-10-18 14:59:051476검색

Google이나 Baidu를 사용하여 사진을 검색하면 사진 색상 옵션이 있는 것을 발견할 수 있는데, 이것이 매우 흥미롭다고 생각하는 사람들도 있습니다. 하하, 가능합니다. 농담이죠. 물론 대량의 사진은 기계로만 인식할 수 있습니다.
이 기능을 Python으로 구현할 수 있나요? 대답은 다음과 같습니다.

Python PIL 모듈의 강력한 이미지 처리 기능을 사용할 수 있습니다. 코드는 다음과 같습니다.

import colorsys

def get_dominant_color(image):


#Color 모드를 RGB 색상값 출력으로 변환

image = image.convert('RGBA')

#썸네일 생성, 계산량 감소 및 CPU 부하 감소

image.thumbnail((200, 200))

max_score = None

dominant_color = 없음

개수, (r, g, b, a) in image.getcolors(image.size[0] * image.size[1]):

>                        = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 255.0)[1]

y = min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 1310 72) >> 13 , 235)

                                                   ~ >

y > 0.9인 경우:

계속

완전히 무시하지는 않습니다. 회색조

# 개수에 0을 곱하여 색상을 지정하지만 여전히 낮은 값을 제공합니다

# 가중치.

점수 = (채도 + 0.1) * 개수

PIL에서 이미지 가져오기

print get_dominant_color(Image.open('logo .jpg'))

이것은 rgb 색상을 반환하지만 이 값은 매우 정확한 범위이므로 Baidu의 색 영역을 어떻게 달성합니까? 영화? ?

사실 방법은 매우 간단합니다. r/g/b는 모두 0~255의 값입니다. 이 세 값을 동일한 간격으로 나눈 다음 결합하여 대략적인 값을 얻으면 됩니다. 예를 들어 0~127, 128~255로 나누어 자유롭게 조합하면 8개의 조합이 나올 수 있는데, 그중에서 가장 대표적인 색상을 골라내면 됩니다.

물론 예시일 뿐입니다. 좀 더 세밀하게 나누어서 보시면 색상이 더 정확하게 나오실거에요~~ 빨리 해보시죠

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:파이썬의 후예다음 기사:파이썬의 후예