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개의 조합이 나올 수 있는데, 그중에서 가장 대표적인 색상을 골라내면 됩니다.물론 예시일 뿐입니다. 좀 더 세밀하게 나누어서 보시면 색상이 더 정확하게 나오실거에요~~ 빨리 해보시죠