Bildverarbeitung 100 Klopfen F.6. Dies ist ein Kommentarartikel zur Farbreduktionsverarbeitung.
Die Verarbeitung zur Farbreduzierung begrenzt die Arten möglicher Werte für R (rot), G (grün) und B (blau). Dies reduziert die Farben, die ausgedrückt werden können.
Im Hauptfach wird angewiesen, die Werte von R, G und B von 256 Wertetypen (0 auf 255) auf 4 Wertetypen (32,96,160,224) zu reduzieren.
Im Originalartikel wird der Farbreduktionsprozess durch diesen Prozess durchgeführt. (folgende)
def dicrease_color(img):
out = img.copy()
out = out // 64 * 64 + 32
return out
Ich war überrascht, dass weniger verarbeitet wurde als ich erwartet hatte. Der Code im folgenden Teil dieser Funktion wird für die Farbreduzierungsverarbeitung verwendet.
out = out // 64 * 64 + 32
Die Zahl 64 ist 256 (0 bis 255) geteilt durch 4.
Mit anderen Worten, out // 64
prüft, welche Klasse (vorausgesetzt, es gibt 4 Klassen wie 0, 1, 2, 3), wenn 256 in vier geteilt wird.
Durch Setzen von * 64 + 32
wird der angegebene Wert der Klasse festgelegt. (Klasse 0 ist 32, Klasse 1 ist 96, Klasse 2 ist 160, Klasse 3 ist 224.) Dieses Mal scheint der Wert nahe der Mitte der Klasse zu liegen. (Werte der Klasse 0 sind 0 bis 63, wobei 32 und 33 in der Mitte liegen.)
Wenn beispielsweise "out // 64" 2 ist (Klasse 2), dh wenn "out" 128 ~ 191 ist, wird "out // 64" zu 2 und "* 64 + 32". Es wird auf den angegebenen Wert (160) der Klasse 2 gesetzt.
Wenn Sie das oben Genannte verstehen, können Sie die Farbe nach Belieben reduzieren, z. B. jeweils 2 Werte, jeweils 6 Werte und jeweils 8 Werte. Sie können die Verarbeitung durchführen. Der Code wird unten als Referenz dargestellt. (* Ich verwende Google Colaboratory. Zum Laden von Bildern usw. ist eine gewisse Verarbeitung erforderlich. I [Verwendung von cv2.imshow () mit Google Colab](https://qiita.com/ITF_katoyu/items/ 115528c98d2e558c6fc6) wurde verwiesen.)
#Support-Patches importieren
from google.colab.patches import cv2_imshow
#Bild importieren
!curl -o logo.png https://colab.research.google.com/img/colab_favicon_256px.png
import cv2
#Laden Sie das Bild und speichern Sie es in img
img = cv2.imread("imori.jpg ", cv2.IMREAD_UNCHANGED)
#Kopieren Sie img in eine Variable namens im
im = img.copy()
#Bild anzeigen
cv2_imshow(im)
sample = im // 128 * 128 + 64
cv2_imshow(sample)
sample = im // 85 * 85 + 42
cv2_imshow(sample)
sample = im // 64 * 64 + 32
cv2_imshow(sample)
sample = im // 43 * 43 + 22
cv2_imshow(sample)
sample = im // 32 * 32 + 16
cv2_imshow(sample)
Es ist überraschend, dass die Bildqualität recht gut ist und jeweils nur bis zu 8 Werte ausdrückt.
das ist alles. Lassen Sie uns weiter an der Bildverarbeitung arbeiten.
Recommended Posts