[GO] [Bildverarbeitung] Poo-san ist durch Kantenerkennung mit Python und OpenCV nackt!

Einführung

Freut mich, dich kennenzulernen! Mein Name ist Yoshiki und ich bin spezialisiert auf maschinelles Lernen und Deep Learning an der Universität! Dieses Mal möchte ich die Kantenerkennung mit Python und OpenCV erläutern. (Es ist auch, um mein Verständnis zu vertiefen lol) Vorerst werde ich mein Bestes geben, um Spaß zu haben und auch diejenigen zu verstehen, die sich fragen, was Python kann!

Was ist Kantenerkennung überhaupt?

In der Welt der Bildverarbeitung bedeutet der Rand einen Ort, an dem sich die Helligkeit im Bild plötzlich ändert, dies ist jedoch nicht sehr klar. Woran denken Sie normalerweise, wenn Sie die Wortkante hören? Die richtige Antwort ist für diejenigen, die an Kanten und Konturen denken! Mit anderen Worten, die Kantenerkennung ist eine Technologie, die nur die Konturfunktion extrahiert, um die Bildverarbeitung zu vereinfachen!

Verweise https://it-mint.com/2018/11/05/feature-value-in-image-recognition-whats-edge-detection-and-spatial-filter-1839.html

Umgebung

Dieses Mal wollte ich, dass jeder seine Hände bewegt, um das Programm auszuführen. Daher möchte ich es nicht lokal, sondern mit Google Drive und Google Colaboratory implementieren. Als Verdienst habe ich es gewählt, weil es praktisch ist, weil es verwendet werden kann, ohne die Bibliothek mit pip usw. zu installieren.

Eine Umgebung schaffen

    1. Erstellen wir zunächst ein Google-Konto! (Wenn Sie es bereits haben, können Sie es verwenden.) Wenn Sie können, greifen Sie auf das Google-Laufwerk zu und melden Sie sich an.
  1. Wenn Sie darauf zugreifen können, wählen Sie das Element Ordner über die neue Schaltfläche oben links aus. Wenn Sie darauf klicken, wird ein Namenseingabefeld angezeigt. Alles ist in Ordnung, aber ich habe es Edge genannt!

    1. Dann denke ich, dass ein Ordner in Mein Laufwerk erstellt wird. Gehen Sie dann dorthin und erstellen Sie die Ordner Images und Src erneut über die neue Schaltfläche. In Bilder können Sie das Bild hochladen, das Sie als Kante erkennen möchten, oder das Bild nach der Kantenerkennung hochladen. Ich werde den Quellcode in Src schreiben.
  2. Nun, es ist fast das Ende! Fügen Sie unter Bilder die Bilder ein, die Sie erkennen möchten! Sie können dies tun, indem Sie eine neue Schaltflächendatei hochladen. Wählen Sie in Src unten unter Neu die Option Google Colaboratory aus. (Wenn nicht, suchen und installieren Sie die App über Hinzufügen!) Nach der Auswahl sollten Sie zum Editor-Bildschirm weitergeleitet werden.

  3. Schließlich zu den Spezifikationen von Google Colaboratory. ・ Bitte beachten Sie, dass Google Colaboratory in etwa 30 Minuten getrennt wird. Wenn die Verbindung getrennt wird, müssen Sie die Verbindung erneut herstellen. (Der Quellcode verschwindet nie lol) ・ Wenn Sie eine Verbindung herstellen, werden Sie wie unten gezeigt nach dem Code gefragt. Greifen Sie also auf die URL zu, um den Code zu erhalten! messageImage_1605587862536.jpg

・ Ändern Sie der Übersichtlichkeit halber den Namen von Untitled.ipynb. -Sie können aus der Dateispalte speichern. Lass es uns fleißig halten!

Quellcode

Ich war mir des objektorientierten Designs als Ganzes bewusst. Ich habe den grundlegenden Codekommentar in den Kommentaren hinterlassen.

import cv2

#------------Setting------------#
#Setting for using google drive
from google import colab
colab.drive.mount('/content/gdrive')

#Directory setting
b_dir='gdrive/My Drive/Edge/' #Setting working directory

#Experiment setting (Parameter setting for canny operator)
min_val=100
max_val=150

#Imput file setting
t_dir=b_dir+'Images/'
data='Pooh'
ext='.JPG'
org_name=t_dir+data+ext

#Output file setting
canny_name=t_dir+data+'_Canny _'+str(min_val)+'_'+str(max_val)+ext

#------------Image processing------------#

#Image read
org=cv2.imread(org_name)
if org is None:
  print('\n**********************************************************\n')
  print(org_name+' cannot be read\n')
  print('************************************************************\n')
else:
  #Grayscale image generation
  gray=cv2.cvtColor(org,cv2.COLOR_BGR2GRAY)

  #Apply image operator
  canny=cv2.Canny(gray,min_val,max_val)

  #Save image
  cv2.imwrite(canny_name,canny)

Erklärung (Anmerkungen)

Zunächst importieren wir OpenCV und legen das Verzeichnis fest.

Hier gibt es eine Einschränkung.

Die letzte Zeile ist Edge. Dies bezieht sich auf den Namen des Ordners, den Sie zuerst festgelegt haben. Schreiben Sie ihn also in den Namen des Ordners, den Sie zuerst erstellt haben.

import cv2

#------------Setting------------#
#Setting for using google drive
from google import colab
colab.drive.mount('/content/gdrive')

#Directory setting
b_dir='gdrive/My Drive/Edge/' #Setting working directory

Als Nächstes werden im Folgenden Parametereinstellungen, Einstellungen für Bilddateien und Einstellungen für Ausgabebilddateien vorgenommen.

Hier gibt es zwei Einschränkungen!

Der erste Punkt betrifft Parameter. Dieses Mal verwenden wir die Canny-Methode als Kantenerkennungsmethode. (Ich werde die Canny-Methode in diesem Artikel nicht erläutern.) Dieser Parameter ist ein Wert, den ich festgelegt habe, um mit diesem Wert eine Kante gut zu machen, sodass Sie ihn ändern können. .. Der zweite Punkt betrifft die Einstellung der Bilddatei. Ich denke, dass Sie das Bild in den Ordner "Bilder" hochgeladen haben. Speichern Sie das Bild daher vor der Erweiterung in Daten und der Erweiterung in ext.

#Experiment setting (Parameter setting for canny operator)
min_val=100
max_val=150

#Imput file setting
t_dir=b_dir+'Images/'
data='Pooh'
ext='.JPG'
org_name=t_dir+data+ext

#Output file setting
canny_name=t_dir+data+'_Canny _'+str(min_val)+'_'+str(max_val)+ext

Ausgabeergebnis

Mounted at /content/gdrive Wenn es so ausgegeben wird, ist es erfolgreich! Schauen Sie sich Bilder in Mein Laufwerk an. Das Bild mit Kantenerkennung sollte ausgegeben werden. Dann habe ich, wie der Titel schon sagt, Poo im Profilbild als Kante erkannt. Sehen Sie sich also das Ergebnis an.

Originalbild Poo

ぷーさん.JPG

Kantenerkennung Poo

ぷーさん_Canny _100_150.JPG

Es tut mir Leid ...

Schließlich

Ist Prost für gute Arbeit! Ich bin froh, wenn jemand bisher zusammen war lol Ich hoffe auch, dass dieser Artikel Sie daran interessiert, wie Python dies tun kann. Da dies mein erster Beitrag ist, beabsichtige ich, dies so sorgfältig wie möglich zu tun. Wenn Sie jedoch Fragen, Fragen oder Fehler haben, kommentieren Sie diese bitte. Ich werde weiterhin viele Artikel wie maschinelles Lernen schreiben. Bitte folgen Sie mir, wenn Sie möchten!

Recommended Posts

[Bildverarbeitung] Poo-san ist durch Kantenerkennung mit Python und OpenCV nackt!
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Ich habe versucht, Objekte mit Python und OpenCV zu erkennen
[Python] Zugreifen auf und Zuschneiden von Bildpixeln mit OpenCV (für Anfänger)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Leichte Bildverarbeitung mit Python x OpenCV
Python-Bildverarbeitung
Schätzung der Kopforientierung mit Python und OpenCV + dlib
Hinweise zur HDR- und RAW-Bildverarbeitung mit Python
Erste Python-Bildverarbeitung
[Ubuntu] [Python] Vergleich der Gesichtserkennung zwischen dlib und OpenCV
Bildverarbeitung mit Python
Anwendung von Python: Datenbereinigung Teil 3: Verwendung von OpenCV und Vorverarbeitung von Bilddaten
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Ähnliche Gesichtsbilderkennung mit Gesichtserkennung und PCA- und K-Mittel-Clustering
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
Bildverarbeitung mit Python (Teil 2)
"Apple-Verarbeitung" mit OpenCV3 + Python3
Bildbearbeitung mit Python OpenCV
Feature-Erkennung mit opencv (Eckenerkennung)
[Python] Verwenden von OpenCV mit Python (Basic)
100 Klopfen bei der Bildverarbeitung !! (001 - 010) Vorsichtig und vorsichtig
Bildverarbeitung mit Python (Teil 1)
Echtzeit-Kantenerkennung mit OpenCV
Bildverarbeitung mit Python (3)
Gesichtserkennung mit Python + OpenCV
Bildverarbeitung mit Python (Pillow)
Bildverarbeitungssammlung in Python
Bildausdehnung und Kontraktionsverarbeitung
Verwenden des Python-Modus in der Verarbeitung
Verwenden von OpenCV mit Python @Mac
[Python] Bildverarbeitung mit Scicit-Image
Automatische Bildinterpolation mit OpenCV und Python (Fast Marching Method, Navier-Stokes)
Erstellen Sie einen einfachen geplanten Stapel mit Dockers Python Image und parse-crontab
Ich habe das Objekt gerade mit Image Repair (Inpaint) (OpenCV: Python) gelöscht.
Erstellen und testen Sie mit Docker in wenigen Minuten eine OpenCV- und Python-Umgebung
Hinzufügen von Excel-Dateispalten und Löschen von Zeilen mithilfe von Python Openpyxl
Ausrichten gescannter Bilder von animiertem Videopapier mit OpenCV und Python
Eindimensionale und zweidimensionale Vertexerkennungsverarbeitung
Umgebungskonstruktion von Python und OpenCV
Leuchtendes Leben mit Python und OpenCV
Python-Parallelverarbeitung (Multiprocessing und Joblib)
Neuronales Netzwerk mit OpenCV 3 und Python 3
Beurteilung des hintergrundbeleuchteten Bildes mit OpenCV
Persönliche Notizen für die Python-Bildverarbeitung
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
Umweltfreundliches Scraping mit Bildverarbeitung
Clustering und Visualisierung mit Python und CytoScape
Horizontale Linienverarbeitung mit OpenCV-Morphologietransformation
Python String Processing Map und Lambda
Finden Sie Bildähnlichkeit mit Python + OpenCV
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Einführung in die Bildanalyse opencv python
Erstellen eines Markierungsblatts mit Python OpenCV (Tipps zum guten Lesen)
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python