Exporter la version Python3 OpenCV KeyPoint dans un fichier

J'ai eu une erreur lorsque j'ai essayé d'écrire KeyPoint dans un fichier à l'aide du module Pickle. C'est un mémo de la contre-mesure à ce moment-là. Si vous le recherchez, il sortira assez rapidement, donc il n'y aura peut-être pas beaucoup de demande, mais pour le moment.

environnement

URL de référence

http://stackoverflow.com/questions/26501193/opencv-python-find-a-code-for-writing-keypoins-to-a-file Presque la même chose que la réponse ici

Exemple d'échec

out_kp_and_des.py


import cv2
import pickle


img = cv2.imread('XXXX.jpg')
detector = cv2.AKAZE_create()
#points clés et descripteurs
kp, des = detector.detectAndCompute(img, None)

with open('XXXX.pickle', mode='wb') as f:
    pickle.dump((kp, des), f)

Si vous essayez de pickle KeyPoint tel quel, vous obtiendrez une erreur du type `` PicklingError: Can't pickle <class'cv2.KeyPoint '>: ce n'est pas le même objet que cv2.KeyPoint' '.

Solution

out_kp_and_des.py


import cv2
import pickle


img = cv2.imread('XXXX.jpg')
detector = cv2.AKAZE_create()
kp, des = detector.detectAndCompute(img, None)

index = []
for p in kp:
    temp = (p.pt, p.size, p.angle, p.response, p.octave, p.class_id)
    index.append(temp)
with open('XXXX.pickle', mode='wb') as f:
    pickle.dump((index, des), f)

Retirez l'attribut KeyPoint et placez-le dans la liste pour qu'il ressemble à Pickle. La lecture du fichier ressemble à ce qui suit.

load_kp_and_des.py


import cv2
import pickle


with open('XXXX.pickle', mode='rb') as f:
    index, des = pickle.load(f)
kp = []
for p in index:
    temp = cv2.KeyPoint(x=p[0][0], y=p[0][1], _size=p[1], _angle=p[2],
                        _response=p[3], _octave=p[4], _class_id=p[5])
    kp.append(temp)

Recommended Posts

Exporter la version Python3 OpenCV KeyPoint dans un fichier
Comment créer un fichier JSON en Python
Introduction à OpenCV (python) - (2)
Je veux écrire dans un fichier avec Python
Analyser une chaîne JSON écrite dans un fichier en Python
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
Script Python qui crée un fichier JSON à partir d'un fichier CSV
Une route vers Python intermédiaire
Introduction à Python (version Python APG4b)
Comment changer la version de Python
Exporter un fichier texte compressé gzip
[python] Remplacez le nom du fichier image par un numéro de série
Comment exécuter un fichier Python à une invite de commande Windows 10
Un script Python qui enregistre une image de presse-papiers (GTK) dans un fichier.
Changer la destination de sortie standard en un fichier en Python
Comment importer des fichiers où vous le souhaitez en Python
[Python] Comment générer une table pandas dans un fichier Excel
Sortie vers un fichier csv avec Python
Écrire la sortie standard dans un fichier
Comment obtenir la version Python
Créer un fichier binaire en Python
5 façons de créer un chatbot Python
Introduction à l'analyse d'image opencv python
Version Python pour obtenir les ports inutilisés
Comment créer un fichier de configuration
[AWS SAM] Présentation de la version Python
Téléchargement de fichiers vers Azure Storage (Python)
J'ai essayé de transformer un fichier Python en un EXE (erreur de récursivité prise en charge)
Traitez le résultat de l'exécution de Splunk en utilisant Python et enregistrez-le dans un fichier
Créez un script shell pour exécuter le fichier python plusieurs fois
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
J'ai essayé d'afficher le temps de lecture de la vidéo (OpenCV: version Python)
Si vous souhaitez affecter une exportation csv à une variable en python
Python vba pour créer une chaîne de date pour créer un nom de fichier
[ROS2] Comment lire un fichier bag avec le lancement au format python
Essayez d'ajouter un mur à votre fichier IFC avec IfcOpenShell python
[Python] Comment convertir un fichier db en csv
Créer un fichier power simple avec Python
Créez des raccourcis pour exécuter des fichiers Python sur le terminal avec VScode
[Python] Comment rendre une classe itérable
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment convertir Python en fichier exe
Super Introduction Arithmétique Bit Python
[Python] Convertit les délimiteurs de fichier csv en délimiteurs de tabulation
Convertir un fichier psd en png en Python
Je veux créer un environnement Python
[Python] Comment inverser une chaîne de caractères
Comment obtenir stacktrace en python
[Python] Comment lire le fichier csv (méthode read_csv du module pandas)
Lire Python csv et exporter vers txt
Créer un fichier deb à partir d'un package python
[GPS] Créer un fichier kml avec Python
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 3 Écrire dans un fichier
Script pour créer un fichier de dictionnaire Mac
Créer un environnement Python + OpenCV sur Cloud9
J'ai fait un programme pour vérifier la taille d'un fichier avec Python