[PYTHON] Bildverarbeitung 100 Klopfen Q.6. Erklärung der Farbreduktionsverarbeitung

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)

ダウンロード (1).png

In jeweils 2 Werte klassifiziert

sample = im // 128 * 128 + 64
cv2_imshow(sample)

ダウンロード (2).png

Klassifiziert in jeweils 3 Werte

sample = im // 85 * 85 + 42
cv2_imshow(sample)

ダウンロード (3).png

Klassifiziert in jeweils 4 Werte (wie im Originalartikel)

sample = im // 64 * 64 + 32
cv2_imshow(sample)

ダウンロード (4).png

In jeweils 6 Werte klassifiziert

sample = im // 43 * 43 + 22
cv2_imshow(sample)

ダウンロード (5).png

In jeweils 8 Werte klassifiziert

sample = im // 32 * 32 + 16
cv2_imshow(sample)

ダウンロード (6).png 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

Bildverarbeitung 100 Klopfen Q.6. Erklärung der Farbreduktionsverarbeitung
Bildverarbeitung mit Python 100 Knock # 6 Farbreduktionsverarbeitung
Bildverarbeitung 100 Klopfen Q9, Q10 (Filter) Beschleunigung
Bildverarbeitung mit Python 100 Knock # 10 Medianfilter
Bildverarbeitung durch Python 100 Knock # 1 Kanalersatz
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-007 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-006 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-001 Erläuterung
Bildverarbeitung mit Python 100 Knock # 12 Bewegungsfilter
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-002 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 021 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-005 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-004 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 020 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 025 Erläuterung
"Data Science 100 Knock (Strukturierte Datenverarbeitung)" Python-003 Erläuterung
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 019 Erläuterung
[Bildverarbeitung] Posterisierung
Python-Bildverarbeitung
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 38
Bildverarbeitung 100 Schläge ①
100 Sprachverarbeitung klopfen 00 ~ 02
Bildverarbeitung mit Python 100 Knock # 11 Glättungsfilter (Durchschnittsfilter)
100 Sprachverarbeitung klopfen 2020 [00 ~ 39 Antwort]
100 Sprachverarbeitung klopfen 2020 [00-79 Antwort]
100 Sprachverarbeitung klopfen 2020 [00 ~ 69 Antwort]
Bildverarbeitung mit MyHDL
100 Amateur-Sprachverarbeitungsklopfen: 17
100 Sprachverarbeitung klopfen 2020 [00 ~ 49 Antwort]
100 Sprachverarbeitung Knock-52: Stemming
Erste Python-Bildverarbeitung
100 Sprachverarbeitung Knock Kapitel 1
Lesen Sie die digitale Bildverarbeitung
100 Amateur-Sprachverarbeitungsklopfen: 07
100 Sprachverarbeitung Knock 2020 Kapitel 3
Bildfarbe extrahieren (RGB)
Bildverarbeitung mit Python
100 Amateur-Sprachverarbeitungsklopfen: 09
100 Amateur-Sprachverarbeitungsklopfen: 47
100 Sprachverarbeitung Knock-53: Tokenisierung
100 Amateur-Sprachverarbeitungsklopfen: 97
100 Sprachverarbeitung klopfen 2020 [00 ~ 59 Antwort]
100 Amateur-Sprachverarbeitungsklopfen: 67
Bildverarbeitung mit PIL
[Python] 100 Schläge auf Data Science (strukturierte Datenverarbeitung) 001-010 Impressionen + Zusammenfassung der Kommentare