[PYTHON] OpenCV-Funktionserkennung mit Google Colaboratory

Einige der OpenCV-Tutorials haben alte Spezifikationen, daher werde ich den Code für diejenigen bereitstellen, die ihn vorerst zum Laufen bringen möchten.

import numpy as np
import cv2
from google.colab.patches import cv2_imshow

img1 = cv2.imread('box.png', 0)
img2 = cv2.imread('box_in_scene.png', 0)
akaze = cv2.AKAZE_create()

kp1, des1 = akaze.detectAndCompute(img1, None)
kp2, des2 = akaze.detectAndCompute(img2, None)
# create BFMatcher object
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=False)
#bf = cv2.BFMatcher()
matches = bf.knnMatch(des1, des2, k=2)

# Need to draw only good matches, so create a mask
matchesMask = [[0,0] for i in range(len(matches))]

# Apply ratio test
good = []
good2 = []
for m,n in matches:
    if m.distance < 0.75*n.distance:
        good.append([m])
        good2.append(m)
# cv2.drawMatchesKnn expects list of lists as matches.
img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,None,flags=2)

cv2_imshow(img3)

MIN_MATCH_COUNT  =10
if len(good)>MIN_MATCH_COUNT:
    src_pts = np.float32([ kp1[m.queryIdx].pt for m in good2 ]).reshape(-1,1,2)
    dst_pts = np.float32([ kp2[m.trainIdx].pt for m in good2 ]).reshape(-1,1,2)

    M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0)
    matchesMask = mask.ravel().tolist()

    h,w = img1.shape
    pts = np.float32([ [0,0],[0,h-1],[w-1,h-1],[w-1,0] ]).reshape(-1,1,2)
    dst = cv2.perspectiveTransform(pts,M)

    img3 = cv2.polylines(img2,[np.int32(dst)],True,255,3, cv2.LINE_AA)
    cv2_imshow(img3)
    img4 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good,None,flags=2)
    cv2_imshow(img4)

Recommended Posts

OpenCV-Funktionserkennung mit Google Colaboratory
Probieren Sie OpenCV mit Google Colaboratory aus
Versuchen Sie die Kantenerkennung mit OpenCV
Feature-Erkennung mit opencv (Eckenerkennung)
Lernen Sie Python mit Google Colaboratory
Echtzeit-Kantenerkennung mit OpenCV
Gesichtserkennung mit Python + OpenCV
Anime-Gesichtserkennung mit OpenCV
Google-Labor
[Python] Verwenden von OpenCV mit Python (Kantenerkennung)
Katzenerkennung mit OpenCV (Modellverteilung)
Gesichtserkennung mit Python + OpenCV (invariante Rotation)
So suchen Sie in Google Colaboratory nach Google Drive
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Verwendung des Jupyter-Kernels von Java mit Google Colaboratory
Verwenden Sie TPU und Keras mit Google Colaboratory
Hallo Welt- und Gesichtserkennung mit OpenCV 4.3 + Python
Größenänderung, Mosaik, Gesichtserkennung mit OpenCV, manchmal Elefantenstempel
Feature Matching mit OpenCV 3 und Python 3 (A-KAZE, KNN)
Cheet Sheet beim Schaben mit Google Colaboratory (Colab)
Feature Engineering für maschinelles Lernen Beginnend mit dem 4. Google Colaboratory - Interacting Features
Authentifizieren Sie Google mit Django
Zusammenfassung der Einrichtung von Google Colaboratory
Katze zurück mit OpenCV erkennen
Binarisierung mit OpenCV / Python
So laden Sie Dateien in Google Drive mit Google Colaboratory
End-to-End-Trennung von Einkanal-Tonquellen mit Google Colaboratory
Sprites mit OpenCV drehen
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
Datenerweiterung mit openCV
Lernen Sie mit "Google Colaboratory" ganz einfach 100 Sprachverarbeitungsklopfen 2020.
Einfache TopView mit OpenCV
Erstellen einer Umgebung für die Verwendung von CaboCha mit Google Colaboratory
Stolpern Sie mit opencv3 von Homebrew
Feature Engineering für maschinelles Lernen ab Teil 3 Google Colaboratory-Scale
Versuchen Sie, eine lineare Regression mit Pytorch mit Google Colaboratory zu implementieren
Gesichtserkennung mit OpenCV von Python
Testen Sie eingebettete Software mit Google Test
"Apple-Verarbeitung" mit OpenCV3 + Python3
Versuchen Sie Google Mock mit C.
Probieren Sie StyleGAN mit Google Colaboratory aus
Bildbearbeitung mit Python OpenCV
Kameraerfassung mit Python + OpenCV
[Python] Verwenden von OpenCV mit Python (Basic)
Über das Lernen mit Google Colab
Gesichtserkennung mit Python + dlib
Binarisieren Sie Fotodaten mit OpenCV
Loop-Video-Laden mit opencv
Holen Sie sich Bildfunktionen mit OpenCV
Gesichtserkennung / Schneiden mit OpenCV
Hängen Sie Google Drive mit google-drive-ocamlfuse ein
Erkennung von Blockchain-Manipulationen mit Python
Greifen Sie mit Python auf Google Drive zu
Gesichtserkennung mit Haar Cascades
Übersetzen - Hilfe von PHP_UML mit Google Übersetzung
Erstellung eines Kaskadenklassifikators mit opencv
Tool-Organisation: Google Colaboratory (aktualisiert 2020.2.24)
Pandas 100 klopft an Google Colaboratory