[PYTHON] Détection des fonctionnalités OpenCV avec Google Colaboratory

Certains des didacticiels OpenCV ont d'anciennes spécifications, je vais donc mettre le code pour ceux qui veulent le faire fonctionner pour le moment.

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

Détection des fonctionnalités OpenCV avec Google Colaboratory
Essayez OpenCV avec Google Colaboratory
Essayez la détection des bords avec OpenCV
Détection de caractéristiques à l'aide d'opencv (détection de coin)
Étudiez Python avec Google Colaboratory
Détection des bords en temps réel avec OpenCV
Détection de visage avec Python + OpenCV
Détection de visage d'anime avec OpenCV
Collaboratoire Google
[Python] Utilisation d'OpenCV avec Python (détection des bords)
Détection de chat avec OpenCV (distribution de modèles)
Détection de visage avec Python + OpenCV (rotation invariante)
Comment rechercher Google Drive dans Google Colaboratory
Créez un classificateur en cascade avec Google Colaboratory
Utilisation du noyau Jupyter de Java avec Google Colaboratory
Utilisez TPU et Keras avec Google Colaboratory
Hello World et détection de visage avec OpenCV 4.3 + Python
Redimensionner, mosaïque, détection de visage avec OpenCV, parfois tampon d'éléphant
Correspondance des fonctionnalités avec OpenCV 3 et Python 3 (A-KAZE, KNN)
Cheet sheet lors du scraping avec Google Colaboratory (Colab)
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir du 4e Google Colaboratory - Fonctionnalités interactives
Authentifier Google avec Django
Résumé de la configuration de Google Colaboratory
Détecter le retour du chat avec OpenCV
Binarisation avec OpenCV / Python
Comment charger des fichiers dans Google Drive avec Google Colaboratory
Séparation de source sonore monocanal de bout en bout avec Google Colaboratory
Faire pivoter les sprites avec OpenCV
Comment analyser avec Google Colaboratory à l'aide de l'API Kaggle
Augmentation des données avec openCV
Apprenez facilement 100 traitements linguistiques Knock 2020 avec "Google Colaboratory"
TopView facile avec OpenCV
Créer un environnement pour utiliser CaboCha avec Google Colaboratory
Trébucher avec opencv3 de homebrew
Ingénierie des fonctionnalités pour l'apprentissage automatique à partir de la partie 3 Échelle collaborative de Google
Essayez d'implémenter la régression linéaire à l'aide de Pytorch avec Google Colaboratory
Reconnaissance faciale avec OpenCV de Python
Tester les logiciels embarqués avec Google Test
"Traitement Apple" avec OpenCV3 + Python3
Essayez Google Mock avec C
Essayez StyleGAN avec Google Colaboratory
Édition d'image avec python OpenCV
Capture de caméra avec Python + OpenCV
[Python] Utilisation d'OpenCV avec Python (basique)
À propos de l'apprentissage avec Google Colab
Détection de visage avec Python + dlib
Binariser les données photo avec OpenCV
Chargement de la vidéo en boucle avec opencv
Obtenez des fonctionnalités d'image avec OpenCV
Reconnaissance faciale / coupe avec OpenCV
Montez Google Drive avec google-drive-ocamlfuse
Détection de falsification de la blockchain avec Python
Accédez à Google Drive avec Python
Détection de visage avec Haar Cascades
Traduire - Aide de PHP_UML avec Google Traduction
Création d'un classificateur en cascade avec opencv
Organisation de l'outil: Google Colaboratory (mise à jour 2020.2.24)
Pandas 100 coups sur Google Colaboratory