Afin d'initialiser fréquemment le PC, je laisserai la construction d'environnement pour la reconnaissance d'image comme un mémorandum pour moi-même (cela peut être assez oublieux car je fais habituellement d'autres travaux). Utilisez miniconda pour créer un environnement qui permet un traitement de reconnaissance d'image simple avec OpenCV avec python.
Aperçu
Anaconda est très bien, mais si vous avez un PC bas de gamme, nous vous recommandons miniconda. Parce qu'il y a peu de packages installés par défaut et que cela ne prend pas de place. https://docs.conda.io/en/latest/miniconda.html Ce n'est pas grave si vous passez au suivant. Aucun réglage spécial n'est requis.
AnacondaPronpt
(base) >conda create -n py36 python=3.6 …(1)
(base) >conda env list …(2)
# conda environments:
#
base * C:\Users\XXXX\miniconda3
py36 C:\Users\XXXX\miniconda3\envs\py36
(base) >activate py36 …(3)
(py36) >conda env list …(4)
# conda environments:
#
base C:\Users\XXXX\miniconda3
py36 * C:\Users\XXXX\miniconda3\envs\py36
(py36) >conda install jupyter notebbok …(5)
(1) Créez un environnement virtuel de python3.6 avec le nom py36 (2) Vérifiez si un environnement virtuel a été créé (3) Puisque vous êtes actuellement dans l'environnement de base (configuration initiale), passez à l'environnement virtuel (py36) créé précédemment. (4) La commutation est OK si les parenthèses sont remplacées par (py36) et * est remplacé par py36. (5) Installez le notebook jupyter
Récemment, j'utilise le notebook Jupter. Je pense que vous pouvez créer un spyder avec un sentiment similaire. Pour l'apprentissage automatique, je pense que python ver est d'environ 3,6. Cela ne fonctionne souvent pas avec la dernière version. (Peut changer dans le futur)
AnacondaPronpt
(py36) >conda install numpy
(py36) >conda install matplotlib
(py36) >conda install opencv
(py36) >jupyter notebook
Démarrez le notebook jupyter et vérifiez si chaque package est installé
AnacondaPronpt
(py36) >jupyter notebook
JupyterNotebook
import cv2
import numpy as np
import matplotlib as plt
print (cv2.__version__)
print (np.__version__)
print (plt.__version__)
C'est OK si chaque version est renvoyée. (Pandas, Keras, scikit-learn, TensorFlor, etc. sont également recommandés si vous êtes personnellement intéressé par l'apprentissage automatique et l'analyse)
Installons OpenCV, qui est le standard de facto pour la reconnaissance d'images. Actuellement, OpenCV prend en charge divers langages de programmation tels que C ++, Python et Java.
En premier lieu, il y a une histoire sur ce qu'est la reconnaissance d'image, mais par souci de simplicité, nous la considérerons comme suit.
Il est facile de distinguer les choses uniquement par leur couleur et leur forme, mais si la lumière du soleil frappe différemment, les couleurs visibles seront différentes, et même si les choses sont coupées, pourquoi pouvons-nous reconnaître les choses? Capture inconsciemment de multiples fonctionnalités et comprend selon la loi.
Comme d'autres outils, OpenCV propose des tutoriels. La documentation officielle est importante, mais ce tutoriel est facile à comprendre. (Personnellement, c'est plusieurs fois plus facile à comprendre que le tutoriel Django) </ font> http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_tutorials.html
Commençons par charger l'image et l'afficher. Placez le fichier image (opencv-logo.png) dans le répertoire où vous souhaitez enregistrer le programme à l'avance.
JupyterNotebook
import cv2
img = cv2.imread('./opencv-logo.png',1)
#Le deuxième argument est 0:Échelle de gris, 1:Image couleur-1:Couleur + transparence(α)
cv2.imshow('image',img)
#Afficher l'image dans la fenêtre
#Le premier argument est le nom de la fenêtre spécifié comme type de chaîne de caractères,Le deuxième argument est l'image que vous souhaitez afficher
cv2.waitKey(0)
#Attendre la saisie de la clé
#L'argument est le temps d'attente d'entrée. 0 est illimité
cv2.destroyAllWindows()
#ferme la fenêtre
Avertissement Si le chemin du fichier image est incorrect, aucune erreur ne sera renvoyée, mais imprimer img et la commande affichera Aucun. http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_gui/py_image_display/py_image_display.html#display-image
Lorsque vous essayez de comprendre une image avec OpenCV, vous ne pouvez pas écrire un programme sans comprendre comment l'image est comprise par OpenCV.
L'image est un tableau tridimensionnel de formes (hauteur, largeur, canaux) https://teratail.com/questions/249839
Ici, nous allons introduire deux types, RVB et HSV.
RVB est couramment utilisé pour représenter le mélange additif. RVB est un acronyme pour le rouge, le vert et le bleu, respectivement. Ce sont les trois couleurs primaires de la lumière et deviennent plus blanches à mesure que la valeur augmente. Au contraire, il devient noir lorsque le nombre est réduit. C'est ce RVB qui est également utilisé dans les moniteurs d'ordinateurs.
Remarque: lorsque le canal alpha est lu, il est traité comme un vecteur à quatre dimensions comme BGRA.
HSV est utilisé pour dessiner des images sur un ordinateur et comme échantillon de couleur. En effet, lorsque l'on considère les couleurs en termes de teinte (teinte) et de saturation, elles sont plus naturelles et intuitives que le mélange additif ou soustractif. Le HSV contient la teinte, la saturation et la valeur. Aussi appelé HSB (teinte, saturation, luminosité). https://ja.wikipedia.org/wiki/%E8%89%B2%E7%A9%BA%E9%96%93
En utilisant correctement ces RVB et HSV, nous essaierons d'obtenir les informations nécessaires à partir des données d'image.
python
import cv2
import numpy as np
img= cv2.imread('RGB.png')
px = img[100,100]
#100,Données à 100 pixels (BGR)
print (px)
blue =img[100,100,0]
#100,0 canal à 100 pixels(B)données de
print (blue)
#Il est également possible de modifier la valeur du pixel en utilisant ce
img[100,100] = [255,255,255]
La valeur de pixel de l'image BGR est un tableau de valeurs de composante de couleur bleue, verte et rouge, et la valeur de pixel de l'image en échelle de gris renvoie la valeur de luminosité.
Il sera mis à jour
Recommended Posts