[PYTHON] Vorbereitung für die pixelweise Verarbeitung von pbm-Bildern

Anstatt den binären Teil von pbm selbst zu verarbeiten Ich dachte, es wäre einfach, mit der Bibliothek zu schreiben, aber Numpy scheint gut zu sein.

Es war gut von pbm bis ndarray, Ich weiß nicht, wie ich von ndarray zu binärem pbm zurückkehren soll.

Transformieren des NumPy-Arrays und des PIL-Sterns hinzufügen Obwohl ich mich auf ↑ etc. bezogen habe.

Wenn Sie ein Array von Binärbildern an ein Bild zurückgeben Es ist nicht pbm, da der Wert durch 1 von 8 Bit anstelle von 1 Bit ersetzt wird. Ich frage mich, ob Kissen nicht genug ist.

array_to_pbm.py


%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

#Bilddatei öffnen
file_name = 'lf_img_small.pbm'
lf_img = Image.open(file_name)
#Im Fall eines Binärbildes wird der Wert im Bool-Typ gespeichert.
#In numpy ist der Bool-Typ numpy.Definiert als bool8.
#Geben Sie beim Einlesen in ein Array bool8 als Lesemodus an.
lf_img_ary = np.array(lf_img, np.bool8)

width, height = lf_img.size
print(width, height)

#Lassen Sie uns die Identität der Sequenz überprüfen.
print('****************')
print(img_ary.flags)
print(img_ary.ndim)
print(img_ary.size)
print(img_ary.shape)
print(img_ary.itemsize)
print(img_ary.strides)
print(img_ary.nbytes)
print(img_ary.dtype)
print('****************')
for x in range(height):
    for y in range(width):
        if y ==0 :
            print(img_ary[x,y])

#Bei der Konvertierung in ein Bild ist es wie bei einem Array.
#Wenn es bool8 ist, tritt ein Fehler auf.
Image.fromarray(np.bool8(img_ary)).save('ary_to_pbm_file.pbm')

#Wenn uint8 angegeben ist, wird pgm anstelle von pbm erstellt.
Image.fromarray(np.uint8(img_ary)).save('ary_to_pbm_file.pbm')

Recommended Posts

Vorbereitung für die pixelweise Verarbeitung von pbm-Bildern
Ich habe das TensorFlow-Tutorial (MNIST für Anfänger) zur Cloud9-Klassifizierung handgeschriebener Bilder ausprobiert.
Ein Tool zum Erstellen symbolischer Links unter Windows
Erstellen Sie einen Bot für Skype unter EC2 (CentOS)
Ein Memorandum zum Berühren von Python Flask mit Heroku
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu