Kantenextraktion mit Python + OpenCV (Sobel-Filter, Laplace-Filter)

So finden Sie einen Differentialfilter, Grundlagen http://qiita.com/shim0mura/items/5d3cbef873f2dd81d82c

OpenCV kann Sobel- und Laplace-Filter anwenden.

Sobel Filter

cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) → dst http://docs.opencv.org/3.0-last-rst/modules/imgproc/doc/filtering.html?highlight=laplacian#sobel

--src: Eingabebild --dst: Ausgabebild --ddepth: Ausgabefarbtiefe --dx: Reihenfolge der Differenzierung in x-Richtung --dy: Reihenfolge der Differenzierung in y-Richtung --ksize: Geben Sie die Kernelgröße 1, 3, 5, 7 an

Es heißt, wenn die Kernelgröße 1 ist, wird ein 1x3-Kernel oder ein 3x1-Kernel verwendet, aber wenn k = 5,7, scheint es so. http://stackoverflow.com/questions/9567882/sobel-filter-kernel-of-large-size

import cv2
from matplotlib import pyplot as plt

img = cv2.imread('Lenna.jpg', 0)

sobelx = cv2.Sobel(img, cv2.CV_32F, 1, 0, ksize=3)
sobely = cv2.Sobel(img, cv2.CV_32F, 0, 1, ksize=3)
sobelx5 = cv2.Sobel(img, cv2.CV_32F, 1, 0, ksize=5)
sobely5 = cv2.Sobel(img, cv2.CV_32F, 0, 1, ksize=5)

plt.subplot(2,2,1),plt.imshow(sobelx,cmap = 'gray')
plt.title('Sobel X k=3'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,2),plt.imshow(sobely,cmap = 'gray')
plt.title('Sobel Y k=3'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,3),plt.imshow(sobelx5,cmap = 'gray')
plt.title('Sobel X k=5'), plt.xticks([]), plt.yticks([])
plt.subplot(2,2,4),plt.imshow(sobely5,cmap = 'gray')
plt.title('Sobel Y k=5'), plt.xticks([]), plt.yticks([])
plt.show()

Ergebnis: スクリーンショット 2016-11-29 15.59.30.png

Die Linie ist dunkler und die Unschärfe ist bei k = 5 stärker als bei k = 3.

Laplace-Filter

cv2.Laplacian(src, ddepth[, dst[, ksize[, scale[, delta[, borderType]]]]]) → dst http://docs.opencv.org/3.0-last-rst/modules/imgproc/doc/filtering.html?highlight=laplacian#laplacian

--src: Eingabebild --dst: Ausgabebild --ddepth: Ausgabefarbtiefe --ksize: Kernelgröße

Da es sich um einen Laplace-Wert handelt, muss die Richtung im Gegensatz zu der mit dem Differential erster Ordnung nicht angegeben werden.

import cv2
from matplotlib import pyplot as plt

lap = cv2.Laplacian(img, cv2.CV_32F)
lap5 = cv2.Laplacian(img, cv2.CV_32F,ksize=3)

plt.subplot(1,2,1),plt.imshow(lap,cmap = 'gray')
plt.title('Laplacian'), plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2),plt.imshow(lap5,cmap = 'gray')
plt.title('Laplacian k=3'), plt.xticks([]), plt.yticks([])

plt.show()

Ergebnis: スクリーンショット 2016-11-29 16.25.00.png

Referenz:

Digitale Bildverarbeitung (https://www.cgarts.or.jp/book/img_engineer/) http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_imgproc/py_gradients/py_gradients.html#gradients http://qiita.com/supersaiakujin/items/494cc16836738b5394c8

Recommended Posts

Kantenextraktion mit Python + OpenCV (Sobel-Filter, Laplace-Filter)
Experiment untersuchen
SVM-Experiment 1
Kantenextraktion mit Python + OpenCV (Sobel-Filter, Laplace-Filter)
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Kanten mit OpenCV extrahieren (Laplace, Sobel, Canny)
Binarisierung mit OpenCV / Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Versuchen Sie die Kantenerkennung mit OpenCV
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
Kantenerkennung (Laplace, Sobel, Canny)
[Python] Verwenden von OpenCV mit Python (Basic)
[Python] Filtern Sie Tabellenkalkulationen mit gspread
Echtzeit-Kantenerkennung mit OpenCV
Gesichtserkennung mit Python + OpenCV
Verwenden von OpenCV mit Python @Mac
Leuchtendes Leben mit Python und OpenCV
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
Neuronales Netzwerk mit OpenCV 3 und Python 3
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
Textextraktion mit AWS Textract (Python3.6)
Einfache Python + OpenCV-Programmierung mit Canopy
Versuchen Sie die Gesichtserkennung mit Python + OpenCV
Schneiden Sie das Gesicht mit Python + OpenCV aus
Gesichtserkennung mit Kamera mit opencv3 + python2.7
Laden Sie das GIF-Bild mit Python + OpenCV
Finden Sie Bildähnlichkeit mit Python + OpenCV
Verwenden Sie OpenCV mit Python 3 in Window
Zeichnen Sie eine Illustration mit Python + OpenCV
Verfolgen Sie Baseballbälle mit Python + OpenCV
Graphbasierte Segmentierung mit Python + OpenCV
Zeichnen Sie einen Pfeil (Vektor) mit opencv / python
Grundlegendes Studium von OpenCV mit Python
Die Farbextraktion mit Python + OpenCV löste das Rätsel des grünen Hintergrunds
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Objektextraktion im Bild durch Mustervergleich mit OpenCV mit Python
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
Einfache Schlüsselwortextraktion mit TermExtract für Python
Speichern Sie Videos Frame für Frame mit Python OpenCV
Bilder mit Pupil, Python und OpenCV aufnehmen
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Bildverarbeitung mit Python & OpenCV [Tonkurve]
Bildverarbeitung mit Python 100 Knock # 12 Bewegungsfilter
Bildaufnahme von der Kamera mit Python + OpenCV
[python, openCV] base64 Gesichtserkennung in Bildern
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ③ Erstellen Sie verschiedene Photoshop-Videos
[Python] Bilder mit OpenCV lesen (für Anfänger)
Bis Sie opencv mit Python verwenden können
Leichte Bildverarbeitung mit Python x OpenCV
Glättung kantengespeichert mit Python + OpenCV (BilateralFilter, NLMeansFilter)
Bildverarbeitung mit Python 100 Knock # 9 Gauß-Filter
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Textextraktion mit GCP Cloud Vision API (Python3.6)
Leistungsvergleich des Gesichtsdetektors mit Python + OpenCV
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Erreichen Sie eine grundlegende Authentifizierung mit CloudFront Lambda @ Edge mit Python 3.8
So beschneiden Sie ein Bild mit Python + OpenCV
Installieren Sie OpenCV 4.0 und Python 3.7 unter Windows 10 mit Anaconda
Verfolgen Sie grüne Objekte mit Python + Numpy (Partikelfilter)
Stellen Sie OpenCV3 in Python3 zur Verfügung, das mit pyenv installiert wurde
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion