Hallo, ich bin Ramu. Dieses Mal werden wir einen Farbreduktionsprozess implementieren, der die Anzahl der Farben im Bild reduziert. Der Grund, warum man vom letzten Mal übersprungen wird, ist übrigens, dass die fünfte HSV-Konvertierung nicht implementiert werden konnte.
Wie der Name schon sagt, ist die Farbreduzierung ein Prozess, der die Anzahl der Farben reduziert. In einem normalen Bild gibt es 256 Farben von jeweils [0: 255] in BGR, und es gibt eine Kombination von $ 256 ^ 3 = 16.777.216 $ Farben für einen Pixelwert. In diesem Prozess wird jede BGR auf 4 Farben von [32,96,160,224] reduziert, und ein Pixelwert wird auf $ 4 ^ 3 = 64 $ reduziert.
Dieses Mal wird die Farbreduktion gemäß der folgenden Formel durchgeführt.
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
#Bild lesen
img = cv2.imread('../assets/imori.jpg')
#Farbreduktionsverarbeitung
img = decreaseColor(img)
#Bildschirm
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
Das Bild links ist das Eingabebild und das Bild rechts ist das Ausgabebild. Sie können sehen, dass die Farbe gut reduziert wurde. Das Ausgabeergebnis sieht aus wie eine Volltonfarbe in einer ähnlichen Farbe.
Wenn Sie Fragen haben, können Sie sich gerne an uns wenden. imori_imoris Github hat die offizielle Antwort. Bitte überprüfen Sie dies ebenfalls. .. Da Python ein Anfänger ist, weisen Sie bitte auf Fehler hin.
Recommended Posts