Traitement d'image par Python 100 Knock # 6 Traitement de réduction de couleur

introduction

Salut, je suis Ramu. Cette fois, nous mettrons en œuvre un processus de réduction des couleurs qui réduit le nombre de couleurs dans l'image. Soit dit en passant, la raison pour laquelle on est ignoré de la dernière fois est que la cinquième conversion HSV n'a pas pu être mise en œuvre.

6ème: traitement de réduction de couleur

Comme son nom l'indique, la réduction des couleurs est un processus qui réduit le nombre de couleurs. Dans une image normale, il y a 256 couleurs de [0: 255] chacune dans BGR, et il y a une combinaison de 256 $ ^ 3 = 16 777 216 $ couleurs pour une valeur de pixel. Dans ce processus, chaque BGR est réduit à 4 couleurs de [32,96,160,224], et une valeur de pixel est réduite à 4 $ ^ 3 = 64 $.

Cette fois, la réduction de couleur est effectuée selon la formule suivante.

pix = {  32 (  0 <= pix <  64)
         96 ( 64 <= pix < 128)
        160 (128 <= pix < 192)
        224 (192 <= pix < 256)

Code source

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

#Lecture d'image
img = cv2.imread('../assets/imori.jpg')

#Traitement de réduction de couleur
img = decreaseColor(img)

#Affichage de l'image
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()

ファイル名 ファイル名

L'image de gauche est l'image d'entrée et l'image de droite est l'image de sortie. Vous pouvez voir que la couleur a bien été réduite. Le résultat de sortie ressemble à une couleur unie sur une couleur similaire.

en conclusion

Si vous avez des questions, n'hésitez pas à nous contacter. [Github] de imori_imori (https://github.com/yoyoyo-yo/Gasyori100knock/blob/master/Question_01_10/answers_py/answer_6.py) a la réponse officielle, veuillez donc vérifier cela également. .. De plus, comme python est un débutant, veuillez signaler toute erreur.

Recommended Posts

Traitement d'image par Python 100 Knock # 6 Traitement de réduction de couleur
Traitement d'image 100 coups Q.6. Explication du traitement de réduction de couleur
Traitement d'image par python (Pillow)
Traitement d'image par filtre de lissage Python 100 knock # 11 (filtre moyen)
100 Language Processing Knock Chapitre 1 par Python
traitement d'image python
Traitement d'image par Python 100 knock # 10 filtre médian
Échelle de gris par matrice-Reinventor of Python image processing-
Traitement de la communication par Python
Premier traitement d'image Python
Traitement d'image avec Python
Traitement d'image avec Python (partie 2)
100 coups de traitement du langage avec Python 2015
Traitement d'image par matrice Basics & Contents-Reinventor of Python image processing-
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
Traitement d'image avec Python (partie 1)
Traitement d'image avec Python (3)
Collection de traitement d'image en Python
[Python] Traitement d'image avec scicit-image
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 traitements de langage avec Python (chapitre 3)
Notes personnelles pour le traitement d'images python
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
100 traitement d'image par Python Knock # 2 Échelle de gris
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (00 ~ 04)
Dessin linéaire avec une matrice - Recherche originale par un réinventeur du traitement d'image Python -
Bases du traitement d'images binarisées par Python
Communication socket et traitement multi-thread par Python
100 Language Processing Knock-89: Analogie avec la constitution additive
100 traitement d'image avec Python Knock # 8 Max Pooling
"Data Science 100 Knock (traitement de données structurées)" Explication Python-007
"Data Science 100 Knock (traitement des données structurées)" Explication Python-006
"Data Science 100 Knock (traitement des données structurées)" Explication Python-001
100 traitements de langage avec Python (chapitre 2, partie 2)
Traitement d'image avec Python et OpenCV [Tone Curve]
100 traitements de langage avec Python (chapitre 2, partie 1)
"Data Science 100 Knock (traitement des données structurées)" Explication Python-002
Dessin avec Matrix-Reinventor of Python Image Processing-
Traitez facilement des images en Python avec Pillow
Analyse d'image de microtomographie à rayons X par Python
[Python] 100 coups sur la science des données (traitement de données structurées) 021 Explication
Traitement d'image avec Python 100 knocks # 7 pooling moyen
"Data Science 100 Knock (traitement des données structurées)" Explication Python-005
"Data Science 100 Knock (traitement de données structurées)" Explication Python-004
[Python] 100 coups sur la science des données (traitement de données structurées) 020 Explication
Traitement d'image léger avec Python x OpenCV
[Python] 100 coups sur la science des données (traitement de données structurées) 025 Explication
"Data Science 100 Knock (traitement des données structurées)" Explication Python-003
Filtrage par convolution par matrice-Reinventor of Python image processing-
Traitement d'image par Python 100 knock # 9 Filtre Gaussien
[Python] 100 coups sur la science des données (traitement de données structurées) 019 Explication
[Traitement d'image] Postérisation
Une personne inexpérimentée en Python essaie de frapper 100 traitement du langage 14-16
Extraire la couleur dominante de l'image par clustering k-means
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier
100 coups de traitement linguistique (2020): 28
Traitement de fichiers Python
Conversion d'affine par matrice (agrandissement / réduction / rotation / cisaillement / mouvement) -Réinventeur du traitement d'image Python-