Um den PC häufig zu initialisieren, überlasse ich die Umgebungskonstruktion für die Bilderkennung als Memorandum für mich selbst (dies kann ziemlich vergesslich sein, da ich normalerweise andere Arbeiten erledige). Verwenden Sie Miniconda, um eine Umgebung zu erstellen, die eine einfache Bilderkennungsverarbeitung mit OpenCV mit Python ermöglicht.
Überblick
Anaconda ist in Ordnung, aber wenn Sie einen Low-End-PC haben, empfehlen wir Miniconda. Da standardmäßig nur wenige Pakete installiert sind und kein Speicherplatz belegt wird. https://docs.conda.io/en/latest/miniconda.html Es ist in Ordnung, wenn Sie mit dem nächsten fortfahren. Es sind keine speziellen Einstellungen erforderlich.
AnacondaPronpt
(base) >conda create -n py36 python=3.6 …(1)
(base) >conda env list …(2)
# conda environments:
#
base * C:\Users\XXXX\miniconda3
py36 C:\Users\XXXX\miniconda3\envs\py36
(base) >activate py36 …(3)
(py36) >conda env list …(4)
# conda environments:
#
base C:\Users\XXXX\miniconda3
py36 * C:\Users\XXXX\miniconda3\envs\py36
(py36) >conda install jupyter notebbok …(5)
(1) Erstellen Sie eine virtuelle Umgebung von Python3.6 mit dem Namen py36 (2) Überprüfen Sie, ob eine virtuelle Umgebung erstellt wurde (3) Wechseln Sie zu der zuvor erstellten virtuellen Umgebung (py36), da Sie sich derzeit in der Basisumgebung (Grundeinstellung) befinden. (4) Das Umschalten ist in Ordnung, wenn die Klammern durch (py36) und * durch py36 ersetzt werden. (5) Installieren Sie das Jupiter-Notebook
Vor kurzem benutze ich Jupiter Notebook. Ich denke, Sie können Spyder mit einem ähnlichen Gefühl erstellen. Für maschinelles Lernen denke ich, dass Python Ver ungefähr 3.6 ist. Es funktioniert oft nicht mit der neuesten Version. (Kann sich in Zukunft ändern)
AnacondaPronpt
(py36) >conda install numpy
(py36) >conda install matplotlib
(py36) >conda install opencv
(py36) >jupyter notebook
Starten Sie das Jupyter-Notebook und prüfen Sie, ob jedes Paket installiert ist
AnacondaPronpt
(py36) >jupyter notebook
JupyterNotebook
import cv2
import numpy as np
import matplotlib as plt
print (cv2.__version__)
print (np.__version__)
print (plt.__version__)
Es ist in Ordnung, wenn jede Version zurückgegeben wird. (Pandas, Keras, Scikit-Learn, TensorFlor usw. werden ebenfalls empfohlen, wenn Sie persönlich an maschinellem Lernen und Analyse interessiert sind.)
Installieren wir OpenCV, den De-facto-Standard für die Bilderkennung. Derzeit unterstützt OpenCV verschiedene Programmiersprachen wie C ++, Python und Java.
Zunächst gibt es eine Geschichte darüber, was Bilderkennung ist, aber der Einfachheit halber werden wir sie wie folgt betrachten.
Es ist leicht, Dinge nur nach Farbe und Form zu unterscheiden, aber wenn das Sonnenlicht unterschiedlich trifft, sind die sichtbaren Farben unterschiedlich, und selbst wenn Dinge abgeschnitten sind, warum können wir Dinge erkennen? Erfasst unwissentlich mehrere Funktionen und versteht sie gemäß dem Gesetz.
Wie andere Tools verfügt auch OpenCV über Tutorials. Offizielle Dokumentation ist wichtig, aber dieses Tutorial ist leicht zu verstehen. (Persönlich ist es um ein Vielfaches einfacher zu verstehen als das Django-Tutorial) </ font> http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_tutorials.html
Laden wir zunächst das Bild und zeigen es an. Legen Sie die Bilddatei (opencv-logo.png) vorab in dem Verzeichnis ab, in dem Sie das Programm speichern möchten.
JupyterNotebook
import cv2
img = cv2.imread('./opencv-logo.png',1)
#Das zweite Argument ist 0:Graustufen, 1:Farbbild-1:Farbe + Transparenz(α)
cv2.imshow('image',img)
#Bild im Fenster anzeigen
#Das erste Argument ist der Fenstername, der als Zeichenfolgentyp angegeben wird,Das zweite Argument ist das Bild, das Sie anzeigen möchten
cv2.waitKey(0)
#Warten Sie auf die Tasteneingabe
#Das Argument ist die Wartezeit für die Eingabe. 0 ist unbegrenzt
cv2.destroyAllWindows()
#schließe das Fenster
Warnung Wenn der Bilddateipfad falsch ist, wird kein Fehler zurückgegeben. Wenn Sie jedoch den Befehl print img ausführen, wird None angezeigt. http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_image_display/py_image_display.html#display-image
Wenn Sie versuchen, ein Bild mit OpenCV zu verstehen, können Sie kein Programm schreiben, ohne zu verstehen, wie das Bild von OpenCV verstanden wird.
Das Bild ist eine dreidimensionale Anordnung von Formen (Höhe, Breite, Kanäle). https://teratail.com/questions/249839
Hier werden zwei Typen vorgestellt, RGB und HSV.
RGB wird üblicherweise verwendet, um das additive Mischen darzustellen. RGB ist eine Abkürzung für Rot, Grün und Blau. Es sind die drei Grundfarben des Lichts und es wird weißer, wenn der Wert steigt. Im Gegenteil, es wird schwarz, wenn die Anzahl verringert wird. Dieses RGB wird auch in Computermonitoren verwendet.
Hinweis: Wenn der Alphakanal gelesen wird, wird er als vierdimensionaler Vektor als BGRA behandelt.
HSV wird zum Zeichnen von Bildern auf einem Computer und als Farbmuster verwendet. Dies liegt daran, dass Farben in Bezug auf Farbton (Farbton) und Sättigung natürlicher und intuitiver sind als additives oder subtraktives Mischen. Der HSV enthält Farbton, Sättigung und Wert. Wird auch als HSB (Farbton, Sättigung, Helligkeit) bezeichnet. https://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93
Bei ordnungsgemäßer Verwendung dieses RGB und HSV werden wir versuchen, die erforderlichen Informationen aus den Bilddaten zu erhalten.
python
import cv2
import numpy as np
img= cv2.imread('RGB.png')
px = img[100,100]
#100,Daten bei 100 Pixel (BGR)
print (px)
blue =img[100,100,0]
#100,0 Kanal bei 100 Pixel(B)Daten von
print (blue)
#Es ist auch möglich, den Pixelwert damit zu ändern
img[100,100] = [255,255,255]
Der Pixelwert des BGR-Bildes ist ein Array von blauen, grünen und roten Farbkomponentenwerten, und der Pixelwert des Graustufenbilds gibt den Helligkeitswert zurück.
Es wird aktualisiert
Recommended Posts