Python에 의한 화상 처리 100개 노크 #6 감색 처리
소개
아무래도, 라무입니다.
이번에는 이미지의 색상 수를 줄이는 감색 처리를 구현합니다.
덧붙여서, 전회로부터 한 개 날고 있는 것은 아무래도 5번째의 HSV 변환을 실장할 수 없었기 때문입니다.
6번째:감색 처리
탈색 처리는 이름 그대로 색상 수를 줄이는 처리입니다.
통상의 이미지에서는 BGR로 각각 [0:255]의 256색이 존재해, 1개의 픽셀치로 $256^3 = 16,777,216$색의 조합이 있습니다.
이번 처리에서는 BGR 각각에 [32,96,160,224]의 4색, 1개의 화소치로 $4^3 = 64$색으로 감색합니다.
이번에, 감색은 이하의 식에 따라 실시합니다.
pix = { 32 ( 0 <= pix < 64)
96 ( 64 <= pix < 128)
160 (128 <= pix < 192)
224 (192 <= pix < 256)
소스 코드
decreaseColor.py
import numpy as np
import cv2
import matplotlib.pyplot as plt
def decreaseColor(img):
dst = img.copy()
idx = np.where((0<=img) & (64>img))
dst[idx] = 32
idx = np.where((64<=img) & (128>img))
dst[idx] = 96
idx = np.where((128<=img) & (192>img))
dst[idx] = 160
idx = np.where((192<=img) & (256>img))
dst[idx] = 224
return dst
# 画像読込
img = cv2.imread('../assets/imori.jpg')
# 減色処理
img = decreaseColor(img)
# 画像表示
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
이미지 왼쪽은 입력 이미지이고 이미지 오른쪽은 출력 이미지입니다.
잘 색이 줄어드는 것을 알 수 있군요. 비슷한 색의 부분을 베타 칠한 것 같은 출력 결과가 되었습니다.
결론
만약, 질문이 있는 분이 계시면 부담없이 부디.
imori_imori씨의 Github 에 공식의 해답이 실려 있으므로 꼭 그쪽도 확인해 보세요.
그런 다음 파이썬은 초보자이므로 잘못된 곳이 있더라도 부드럽게 지적하십시오.
Reference
이 문제에 관하여(Python에 의한 화상 처리 100개 노크 #6 감색 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/muro5866/items/7cf13310292fceaf4ecb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)