[PYTHON] Die Bildanzeigefunktion von iTerm ist praktisch bei der Verarbeitung von Bildern.

Die neue Version von iTerm bietet die Möglichkeit, Bilder im Terminal anzuzeigen (https://www.iterm2.com/documentation-images.html).

image (Nachgedrucktes Bild von Offizielle Seite)

Beim Schreiben eines Programms wie der Bildverarbeitung wird häufig eine kleine Änderung vorgenommen und wiederholt ausgeführt, und Versuch und Irrtum werden viele Male wiederholt. In einem solchen Fall können Sie versuchen, einen Fehler mit hoher Geschwindigkeit zu machen, wenn Sie den Bildanzeigebefehl von iTerm verwenden.

Angenommen, Sie schreiben ein Programm, das Gesichter aus Bildern erkennt. Zu diesem Zeitpunkt gibt ** die Bildbinärdatei an die Standardausgabe aus. ** **.

import cv2
import sys

path = sys.argv[1]

cascade_file = "/usr/local/Cellar/opencv/2.4.12_2/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"

image = cv2.imread(path)
cascade = cv2.CascadeClassifier(cascade_file)
faces = cascade.detectMultiScale(image)

(x, y, w, h) = faces[0]

flag, buf = cv2.imencode('.png', image[y:y+h, x:x+w])
print(buf.tobytes())

Sie können das Bild in iTerm per Pipe anzeigen und an den Bildanzeigebefehl senden. Sie müssen kein Programm schreiben, um das Bild als Namen zu speichern oder auf der GUI anzuzeigen.

python face_detect.py ~/Downloads/trump.jpg | term-img

image

Ich verwende einen Befehl namens term-img, der mit npm eingeht. Ich denke, dasselbe gilt für den offiziellen Befehl imgcat.

Wenn Sie das Bild speichern möchten, können Sie die Standardausgabe speichern.

python face_detect.py ~/Downloads/trump.jpg > president.jpg

Mit anderen Befehlen kombinieren

Ich denke, es gibt Zeiten, in denen ich es kleiner machen möchte, weil mein Gesicht zu groß ist. In einem solchen Fall können Sie die Größe ändern, indem Sie es beispielsweise von einer Pipe zu Imagemagick ausführen.

python face_detect.py ~/Downloads/trump.jpg | convert -resize 200x200 - jpg:- | term-img

image

Wenn du einen Fehler machen willst

Wenn Sie sich plötzlich wie Kunst fühlen, können Sie sie streamen, um das Bild zu beruhigen und zu zerstören.

python face_detect.py ~/Downloads/trump.jpg | convert -resize 64x64 - jpg:- | sed 's/0/1/g' | term-img image

Wenn Sie viel Pannen wollen

Wenn der Drang zur Zerstörung nicht unterdrückt werden kann, wird das Bild so angezeigt, wie es ist, indem es mit der for-Anweisung gedreht wird, und das zerstörte Bild kann mit hoher Geschwindigkeit bestätigt werden.

for i in $(seq 1 9); do python face_detect.py ~/Downloads/trump.jpg | convert -resize 64x64 - jpg:- | sed "s/0/$i/g" | term-img; done image

Recommended Posts

Die Bildanzeigefunktion von iTerm ist praktisch bei der Verarbeitung von Bildern.
Bildverarbeitung? Die Geschichte, Python für zu starten
Verstehen Sie die Funktion der Faltung am Beispiel der Bildverarbeitung
Lassen Sie uns über die Tonkurve der Bildverarbeitung sprechen ~ LUT ist erstaunlich ~
Warum wird Kreuzentropie für die Zielfunktion des Klassifizierungsproblems verwendet?
Was ist die Aktivierungsfunktion?
100 Sprachverarbeitung Knock-42: Anzeige der Phrase der betroffenen Person und der betroffenen Person
Sprachverarbeitung 100 Knocks-29: Holen Sie sich die URL des Flaggenbildes
Welche Methode eignet sich am besten für die asynchrone Verarbeitung des TCP-Servers?
Was ist die Schnittstelle für ...
Was ist die Rückruffunktion?
26.11.2015 Python> Funktionsliste des Moduls anzeigen> Mathematik importieren> Verzeichnis (Mathematik)
Das Bild ist Namekuji
Goldnadel für den Fall, dass sie zu einem Stein wird, wenn man sich die Formel der Bildverarbeitung ansieht
Echtzeitanzeige des serverseitigen Verarbeitungsfortschritts im Browser (Implementierung des Fortschrittsbalkens)
Berücksichtigen Sie die Verarbeitungsgeschwindigkeit, um den Bildpuffer mit numpy.ndarray zu verschieben
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Warum ist der verteilte Ausdruck von Wörtern für die Verarbeitung natürlicher Sprache wichtig?
[Für Anfänger] Rekursive Funktion (Der Turm in Hanoi ist leicht zu verstehen!)
for, continue, break Erläutern Sie den Ablauf der iterativen Verarbeitung in Python3-Teil 1
Ist die Niederschlagswahrscheinlichkeit korrekt?
Persönliche Notizen für die Python-Bildverarbeitung
Wofür ist der Python-Unterstrich (_)?
Wissenschaft "Ist Saito der Vertreter von Saito?"
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
[Ota Ward] Überprüfen Sie den Status der Antragsbearbeitung auf besondere Pauschalleistungen
[Beispiel für eine Python-Verbesserung] Was ist die empfohlene Lernseite für Python-Anfänger?
Über die Hauptaufgaben der Bildverarbeitung (Computer Vision) und die verwendete Architektur
Python: Ich möchte die Verarbeitungszeit einer Funktion genau messen
Grundlagen der binärisierten Bildverarbeitung durch Python
Bildanzeige mit dem eingebauten ISIGHT
Was ist Clivoa, ein Framework für die ETL-Verarbeitung?
Graustufen durch Matrix-Reinventor der Python-Bildverarbeitung-
Zeigen Sie das Diagramm von tensorBoard auf jupyter an
Über die Argumente der Setup-Funktion von PyCaret
[Python] [Meta] Ist der Python-Typ ein Typ?
Einführung der Funktion addModuleCleanup / doModuleCleanups von unittest
Die dritte Nacht der Runde mit für
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Zeichnen mit Matrix-Reinventor von Python Image Processing-
Hashing-Algorithmus zur Bestimmung des gleichen Bildes
Die zweite Nacht der Runde mit für
Die Geschichte der Verarbeitung A von Blackjack (Python)
Lösung: Die Anzeige des Jedi-Vim-Popups ist fehlerhaft
Der hintere Schrägstrich der japanischen Tastatur ist "ro".
Faltungsfilterung durch Matrix-Reinventor der Python-Bildverarbeitung-
[IOS] Ändern Sie die Anzeigezeit für jedes Bild der GIF-Animation in Pythonista3.
Django-Schichterstellungsfunktion Grundlegende Arbeitsschichtregistrierungsfunktion für Tage hinzugefügt
[Python] Anzahl der Ganzzahlzeichenfolgen der Länge n, für die die Summe m ist
Lassen Sie uns eine einfache Vorlage anzeigen, die ideal für den ersten Django ist
Ich habe versucht, die Gesichtsverdeckungsarbeit des Koordinationsbildes für das Tragen zu automatisieren