J'ai traduit un peu plus sur les "Tutoriels OpenCV-Python", c'est donc une bibliothèque utile avec des liaisons OpenCV-Python![Scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0 / 83761 / 3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png) J'ai également ajouté un lien vers scikit-image. Les deux sont des bibliothèques qui utilisent la structure de données numpy en Python, vous pouvez donc les utiliser en combinaison.
Dans le cas de Scikit-image, il est fourni sous une forme qui facilite la liaison avec OpenCV-Python, en se concentrant sur les méthodes qui ne sont pas fournies par OpenCV-Python. Puisque Scikit-image complète des fonctionnalités qui ne sont pas incluses dans OpenCV, une plus large gamme de technologies de reconnaissance d'images peut être réalisée dans le cadre de Python. (Sckit-Image elle-même n'inclut pas l'apprentissage automatique, l'apprentissage automatique est fourni séparément en tant que Scikit-learn.)
La page de script d'exemple dans Scikit-image Examples a un bouton de téléchargement pour le script. Appuyez sur ce bouton pour télécharger le script, ouvrez-le dans un environnement python tel que Spyder ou IDLE et essayez de l'exécuter. Dans l'exemple scikit-image, les données utilisées dans l'exemple sont utilisées.
image = data.astronaut()
Parce qu'elle est donnée sous forme de, l'idée de "batterie incluse" en Python est approfondie. Par conséquent, même les débutants peuvent exécuter le programme sans se coincer. Il est encore plus facile d'expérimenter avec l'exemple, car vous pouvez modifier l'image d'entrée après l'avoir vue fonctionner.
### ** Commun à OpenCV-Python et scikit-image **
C'est exactement la même chose en ce sens qu'il utilise un tableau numpy à partir de Python.
C'est exactement la même chose que vous pouvez utiliser matplotlib pour dessiner des graphiques.
Par conséquent, c'est exactement la même chose que les données matricielles utilisées dans le programme peuvent être affichées et vérifiées avec une sortie de type MATLAB.
Il n'est pas nécessaire d'écrire une instruction for pour traiter les données de matrice pour l'une ou l'autre bibliothèque, et chaque bibliothèque effectue un traitement de boucle interne.
Les utilisateurs de la bibliothèque ne savent plus qu'ils sont optimisés.
Pour l'utiliser comme bibliothèque, vous n'avez pas besoin d'être conscient de la différence dans la façon dont OpenCV-Python et Scikit-image sont implémentés.
Puisqu'il s'agit d'une bibliothèque de langage Python, c'est la même chose que help (nom de la fonction) montre comment utiliser la fonction.
### ** Avez-vous atteint le traitement d'image / reconnaissance d'image souhaité **?
Il existe des méthodes qui adoptent différentes approches pour traiter le même objectif. Il est encourageant qu'il existe autant d'exemples que possible avec du code et des données qui peuvent réellement être exécutés.
Selon la nature des données d'entrée, l'efficacité de chaque algorithme en dépend.
L'une des raisons pour lesquelles il existe tant d'algorithmes de suppression d'arrière-plan et d'algorithmes de suivi est que la nature des données d'entrée détermine celle qui produit les meilleurs résultats.
Au stade de la découverte de celui qui est suffisant, essayer plusieurs algorithmes avec moins d'effort et être capable d'évaluer l'impact du prétraitement avec moins de traitement affectera l'avancement du travail.
Lors de la mise en correspondance des points correspondants sur deux images, le nombre de points obtenus à partir des images varie en fonction du type de points caractéristiques utilisés. En outre, le fait que les points caractéristiques puissent être obtenus ou non en commun à partir de deux images avec des champs de vision différents (qu'ils résistent ou non aux changements d'angle de vue) dépend également de la quantité de caractéristiques utilisées. Comme vous pouvez le voir, il est encourageant que scikit-image fournisse une grande bibliothèque de fonctionnalités d'image.
Dans OpenCV-Python, les tutoriels ne sont que quelques-unes des techniques offertes par OpenCV-Python. Après avoir déplacé le suivi dans le didacticiel, essayez une technique de suivi non mentionnée dans le didacticiel.
### ** Évaluons les performances **
Supposons qu'un algorithme fonctionne bien avec les données représentatives d'intérêt. Cependant, il est rare que l'algorithme soit pratique.
En données pratiques
・ Le bruit augmente.
・ Ce n'est pas assez lumineux.
・ L'image n'est pas nette.
・ L'image est déformée.
・ La balance des blancs est en désordre.
・ Ce n'est pas de niveau.
-La résolution de l'image est faible (ou trop élevée).
-La fréquence d'échantillonnage vidéo n'est pas élevée.
・ La variété des sujets ne peut pas être couverte.
Il est possible que l'algorithme attendu échoue pour diverses raisons.
Lorsqu'un algorithme (y compris le prétraitement et le post-traitement) qui résout ces problèmes est créé, il détermine dans quelle mesure il peut résister à la scène d'utilisation attendue.
### ** Vérifions les détails de l'algorithme en dessinant un graphique **
Ce qui est commun à tous les logiciels OpenCV-Python, scikit-image, scikit-learn, "Practical Computer Vision"
Le fait est que les données sont visualisées en utilisant [matplotlib](http://matplotlib.org/). Vous devez également dessiner un graphique pour voir si l'algorithme vous donne vraiment les résultats que vous attendez. Il est également nécessaire de visualiser les données de progression sur ce qui se passe dans l'algorithme. Il est nécessaire d'évaluer les performances, par exemple pourquoi choisir cet algorithme et à quel point cet algorithme est robuste. Les graphiques pour une telle vérification ne restent pas dans le code source du produit final. Bien les valider en Python vous aidera à implémenter votre produit final dans OpenCV-C ++.
### ** Mesurons la vitesse d'exécution **
e1 = cv2.getTickCount()
`# Écrivez le code pour évaluer le temps d'exécution ici.
e2 = cv2.getTickCount()
timeDiff = (e2 - e1)/ cv2.getTickFrequency()
Si vous utilisez la fonction cv2 pour mesurer le temps de traitement, vous pouvez mesurer le temps de traitement de la même manière même si l'OS ou la CPU change.
Que vous utilisiez OpenCV-Python ou sciki-image, le profileur Python vous indiquera combien de fois la fonction souhaitée est appelée et combien de temps elle prend. Le profileur Python est courant quel que soit le type de système d'exploitation
profile.run(statement, filename=None, sort=-1)
Vous pouvez le faire avec.
(De Spyder, il s'agit de [Exécuter] [Profil].)
### ** Améliorez la vitesse d'exécution **
Je cours avec OpenCV-Python, scicit-learn, et il y a plusieurs raisons pour lesquelles la vitesse d'exécution est lente.
-Réduire la taille de l'image et réduire la quantité de traitement.
-En multi-core, si deux processus peuvent être opérés en parallèle, opérer en threads.
Vous pouvez le rendre plus rapide avec.
[Essayez de charger les images dans un fil de discussion séparé](http://qiita.com/nonbiri15/items/89238c03b672c8f0579f)
[L'écriture explicite d'une boucle avec numpy est extrêmement lente](http://qiita.com/nonbiri15/items/ef97b84832055ab807fb)
Si possible, je serais heureux si nous pouvions accélérer le processus dans le cadre de Python.
Accédez-vous aux éléments du tableau dans une double boucle contre le tableau de numpy?
Examinez les fonctions existantes pour ne pas avoir à écrire une boucle for.
Il n'y a rien qui puisse être utilisé pour les fonctions existantes, et je dois écrire une boucle for.
De plus, si vous avez besoin d'accélérer la fonction, envisagez de l'accélérer en utilisant le langage Cython.
### ** Lors de l'implémentation en C ++ **
Si votre objectif n'est pas d'écrire en C ++ et que vous avez des performances de reconnaissance et une vitesse d'exécution suffisantes, vous pouvez arrêter le développement à ce stade.
(Je suis heureux si vous êtes un client qui dit que Python suffit.)
Si vous voulez un programme C ++, vous devrez migrer vers OpenCV-C ++ puis vers OpenCV-C ++.
Pour migrer l'algorithme vérifié par Scikit-Image vers OpenCV-C ++, recherchez une implémentation incluse dans OpenCV lui-même dans le type cv :: Mat, ou une implémentation qui effectue un traitement équivalent à l'aide d'OpenCV, et portez-la. Ça ira facilement. Avec Scikit-Image, si vous testez si l'algorithme est suffisant pour résoudre le problème que vous rencontrez et terminer le problème, la plupart des problèmes seront résolus, alors écrivez-le en type cv :: Mat Ne devrait pas vous déranger.
L'avantage d'utiliser OpenCV-Python est que les algorithmes écrits en OpenCV-Python peuvent être facilement portés vers OpenCV-C ++. De plus, vous pouvez vous concentrer sur l'utilisation et le test de l'algorithme sans connaître les détails de ce qui est implémenté dans OpenCV-Python. Si vous voulez connaître les détails de l'algorithme, vous pouvez consulter la bibliothèque d'OpenCV-Python, et lire le code source C ++ pour aller plus loin dans les détails.
Dans les deux cas, l'interface du langage python vous permet de voir si l'algorithme peut être utilisé pour votre utilisation prévue. Une fois que vous avez vérifié, la réécriture de cet algorithme dans le framework OpenCV-C ++ devrait vous donner confiance. (Ou recherchez une implémentation de cet algorithme en C ++)
Remarque: OpenCV-Python et Scikit-image sont d'énormes bibliothèques. Avec cette comparaison, ne vous méprenez pas sur le fait que ○○ n'a pas △△.
### ** Approche d'implémentation Scikit-image **
Dans le cas de Scikit-Image, le [langage Cython](https://ja.wikipedia.org/wiki/Cython) qui réalise speedup comme un langage typé tout en utilisant le framework du langage Python. Ce sera votre tour. Pour ceux qui connaissent le langage Python, ce sera une description facile à comprendre de l'algorithme.
***
> ### ** Introduction à OpenCV **
> [Tutoriel d'introduction à OpenCV-Python](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_setup/py_intro/py_intro.html#intro)
>![Intro_1](http://docs.opencv.org/3.0-beta/_images/opencv_logo.jpg) Commençons avec OpenCV-Python
> [Installer OpenCV-Python sur Windows](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows)
![Install_1](http://docs.opencv.org/3.0-beta/_images/windows_logo.jpg) OpenCVをwindowsで使えるようにする。
> [Installer OpenCV-Python sur Fedora](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_setup/py_setup_in_fedora/py_setup_in_fedora.html#install-opencv-python-in-fedora)
>![Install_2](http://docs.opencv.org/3.0-beta/_images/fedora_logo.jpg) Rendre OpenCV disponible dans Fedora.
### ** Informations officielles sur l'installation de Scikit-image **
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)
[Scikit-image / Download](http://scikit-image.org/download.html)
[Installing scikit-image](http://scikit-image.org/docs/dev/install.html)
### ** Remarques sur l'installation de scikit-image **
Sur l'interpréteur python
\>>> import skimage
Si vous n'obtenez aucune erreur, vous avez installé scikit-image.
Si vous obtenez une erreur, installez-le.
Je ne procéderai que dans le cas des fenêtres.
[Unofficial Windows Binaries for Python Extension Packages]
(http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-image)
Recherchez le binaire compilé de scicit-image à partir de.
Selon que la version de Python (CPython) est 2.7 ou 3.x
scikit_image‑0.11.3‑cp27‑none‑win32.whl
scikit_image‑0.11.3‑cp33‑none‑win32.whl
Sélectionnez la version Python appropriée ci-dessus.
Selon que Python est une version 32 bits ou une version 64 bits
scikit_image‑0.11.3‑cp27‑none‑win32.whl
scikit_image‑0.11.3‑cp27‑none‑win_amd64.whl
Choisissez l'un ou l'autre.
Même si la version du système d'exploitation est la version 64 bits, python peut utiliser la version 32 bits. (Si la priorité est donnée à la facilité d'alignement des bibliothèques, il est préférable d'utiliser la version 32 bits de Python et la version 32 bits de la bibliothèque même sur un système d'exploitation 64 bits.)
Pour installer un fichier avec l'extension whl, à partir de l'invite de commande Windows
\> nom du fichier d'installation pip.whl
À installer.
Après l'installation sur l'interpréteur python
\>>> import skimage
Si vous n'obtenez pas d'erreur dans, vous savez que scicit-image réussit.
***
> ### ** Fonctionnalités GUI dans OpenCV **
> [Commençons la manipulation d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_image_display/py_image_display.html#py-display-image)
![gui_1](http://docs.opencv.org/3.0-beta/_images/image_display.jpg)画像を読み込むこと、表示すること、保存することを学びます。
> [Commençons l'opération vidéo](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_video_display/py_video_display.html#display-video)
![gui_2](http://docs.opencv.org/3.0-beta/_images/video_display.jpg) 動画の再生、カメラからの動画のキャプチャと動画としての保存を学びましょう。
> [Fonctions de dessin OpenCV](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_drawing_functions/py_drawing_functions.html#drawing-functions)
![gui_5](http://docs.opencv.org/3.0-beta/_images/drawing1.jpg) 直線、矩形、楕円、円などをOpenCVを使って描画することを学びます。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Shapes いろんな形を書いてみよう](http://scikit-image.org/docs/dev/auto_examples/plot_shapes.html#example-plot-shapes-py)
La page de script d'exemple dans Scikit-image Examples a un bouton de téléchargement pour le script. Appuyez sur ce bouton pour télécharger le script, ouvrez-le dans un environnement python tel que Spyder ou IDLE et essayez de l'exécuter.
> [Utilisez la souris comme un pinceau](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_mouse_handling/py_mouse_handling.html#mouse-handling)
![gui_3](http://docs.opencv.org/3.0-beta/_images/mouse_drawing.jpg) マウスを使って塗りつぶし
> [Utiliser la Trackbar comme palette de couleurs](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_gui/py_trackbar/py_trackbar.html#trackbar)
![gui_4](http://docs.opencv.org/3.0-beta/_images/trackbar.jpg) パラメータを制御するためのtrackbarを作る
***
> ### ** Fonctionnement principal **
[Opération de base sur les images](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#basic-ops)
>![core_1](http://docs.opencv.org/3.0-beta/_images/pixel_ops.jpg)
Apprenez à lire et à modifier les valeurs de pixel, à utiliser les images dans le ROI (région d'intérêt) et à d'autres opérations de base.
Parfois, vous souhaitez effectuer le traitement souhaité uniquement pour le retour sur investissement (zone d'intérêt) de l'image.
A ce moment, il est important de ne pas faire de l'image de la zone d'intérêt une copie de l'image originale afin d'écrire un programme efficace.
numpy.array est une référence à une partie du tableau d'origine, et non à une copie, lors de la création d'un sous-tableau.
Lorsque le sous-arrangement est réécrit, le changement est automatiquement reflété dans l'image d'origine.
Il existe également un moyen de spécifier un sous-tableau pour le type cv :: Mat comme suit.
cv::Mat roi(img, Rect(10,10,100,100));
[Explication de la structure de base d'OpenCV](http://opencv.jp/opencv-2svn/cpp/basic_structures.html)
> [Opérations arithmétiques sur les images](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_image_arithmetics/py_image_arithmetics.html#image-arithmetics)
>![core_2](http://docs.opencv.org/3.0-beta/_images/image_arithmetic.jpg)
Effectue des opérations arithmétiques sur l'image.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Scikit-image/UsingsimpleNumPyoperationsformanipulatingimages(numpyを使って画像を扱う方法の説明)](http://scikit-image.org/docs/dev/auto_examples/plot_camera_numpy.html#example-plot-camera-numpy-py)
> [Méthode de mesure et d'amélioration des performances d'exécution]
(http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_optimization/py_optimization.html#optimization-techniques)
>![Core_4](http://docs.opencv.org/3.0-beta/_images/speed.jpg) Il est important d'obtenir la réponse. Mais obtenir la réponse le plus rapidement est encore plus important. Vérifiez la vitesse de votre code, apprenez à optimiser votre code et plus encore.
> [Méthodes mathématiques dans OpenCV](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_maths_tools/py_maths_tools.html#mathematical-tools)
![core_5](http://docs.opencv.org/3.0-beta/_images/maths_tools.jpg) PCA(Principalcomponentsanalysis 主成分分析)、SVD(singularvaluedecomposition 特異値分解)などのOpenCVで提供されている数学的手法のいくつかを学びます。
Note du traducteur:
L'ACP est une méthode qui permet de trouver des composants variables inconnus et leurs ratios à partir du phénomène selon lequel il existe de nombreux composants variables. Supposons que vous ayez un grand nombre de solutions mélangées avec plusieurs colorants mélangés ensemble. Et supposons que le mélange soit différent pour chaque lot. Supposons que vous ayez mesuré un certain nombre de spectres de ces solutions mixtes. Voici une question. Combien de types de pigments sont mélangés? Quel type de spectre possède chacun des colorants d'origine? Quelle quantité de ce colorant est mélangée dans chaque solution mélangée? Ceux-ci peuvent être résolus par une méthode mathématique appelée analyse en composantes principales. C'est une méthode efficace pour analyser des phénomènes avec de multiples facteurs variables.
SVD a beaucoup de données de mesure pour déterminer les variables inconnues, et il n'est pas possible d'obtenir des nombres inconnus en résolvant des équations simultanées ordinaires. De telles situations sont en fait des situations fréquentes. A cette époque, SVD (décomposition en valeurs singulières) est une méthode pour trouver des inconnues tout en exploitant toutes les données. Cette méthode doit être utilisée à la place de la méthode du carré minimum pour analyser les données expérimentales. Informations de référence
・ [7.2 Solution carrée minimale d'une équation linéaire impossible](http://www.chaos.cs.tsukuba.ac.jp/ILA/doc/chapter7.pdf)
- [Calcul d'équations linéaires simultanées à l'aide de la décomposition de valeurs singulières](http://sssiii.seesaa.net/article/383104769.html)
・ "Pratique de la vision par ordinateur" p56 décrit comment résoudre des équations à l'aide de SVD.
Malheureusement, le lien vers [Méthodes mathématiques dans OpenCV] n'a pas encore été écrit.
***
> ### ** Traitement d'image avec OpenCV **
> [Modifier l'espace colorimétrique](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_colorspaces/py_colorspaces.html#converting-colorspaces)
![imgproc_1](http://docs.opencv.org/3.0-beta/_images/colorspace.jpg) 異なる色空間で画像を変換する方法を学びましょう。そして動画で色つきの物体を追跡させてみましょう。
> [Transformation géométrique de l'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.html#geometric-transformations)
![imgproc_gt](http://docs.opencv.org/3.0-beta/_images/geometric.jpg) 回転、変形などのさまざまな幾何変換を施してみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Usinggeometrictransformations幾何変換を使ってみよう](http://scikit-image.org/docs/dev/auto_examples/applications/plot_geometric.html#example-applications-plot-geometric-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[PiecewiseAffineTransformation 画素単位のアフィン変換](http://scikit-image.org/docs/dev/auto_examples/plot_piecewise_affine.html#example-plot-piecewise-affine-py)
> [Traitement du seuil d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_thresholding/py_thresholding.html#thresholding)
![imgproc_2](http://docs.opencv.org/3.0-beta/_images/thresh.jpg) 画像をグローバルしきい値、適応的閾値処理 、大津の2値化などで2値化画像に変換してみましょう。
Remarque: le didacticiel OpenCV-Python utilise numpy pour expliquer "Comment fonctionne la binarisation d'Otsu?". Si vous voulez juste montrer que la binarisation d'Otsu dans OpenCV-C ++ peut également être utilisée dans OpenCV-Python, ce n'est pas nécessaire de le faire, mais cela explique la binarisation d'Otsu avec numpy avec un esprit de service abondant. .. La fonction threshold () en C ++ change son comportement de manière compliquée en fonction de l'argument, il semble donc difficile de lire l'algorithme.
Dans le processus de binarisation, le processus de binarisation optimal dépend du contenu du processus cible et de la nature des données d'entrée. Dans le cas d'un traitement de binarisation dynamique tel que la binarisation d'Otsu, il est forcé de binariser, donc si vous donnez une entrée que vous voulez dire "pas de zone applicable", cela peut ne pas être le comportement attendu. Peut être.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Thresholding 閾値処理](http://scikit-image.org/docs/dev/auto_examples/plot_otsu.html#example-plot-otsu-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[LocalOtsuThreshold 局所大津の閾値処理](http://scikit-image.org/docs/dev/auto_examples/plot_local_otsu.html)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[AdaptiveThresholding 適応的閾値処理](http://scikit-image.org/docs/dev/auto_examples/plot_threshold_adaptive.html#example-plot-threshold-adaptive-py)
> [Lissage d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_filtering/py_filtering.html#filtering)
![blurring.png](https://qiita-image-store.s3.amazonaws.com/0/83761/9c1b6cee-7281-148c-5f54-2bf2914f793c.png) 画像をぼかしたり、あつらえたカーネルを用いた画像にフィルタすることを学びます。
> [Conversion morphologique](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_morphological_ops/py_morphological_ops.html#morphological-ops)
>![Imgproc_12](http://docs.opencv.org/3.0-beta/_images/morphology.jpg) Découvrez les transformations morphologiques telles que la contraction, l'expansion, l'ouverture et la fermeture.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[MorphologicalFiltering](http://scikit-image.org/docs/dev/auto_examples/applications/plot_morphology.html#example-applications-plot-morphology-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[ConvexHull凸包](http://scikit-image.org/docs/dev/auto_examples/plot_convex_hull.html#example-plot-convex-hull-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Skeletonize 骨格化](http://scikit-image.org/docs/dev/auto_examples/plot_skeleton.html#example-plot-skeleton-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Medialaxisskeletonization](http://scikit-image.org/docs/dev/auto_examples/plot_medial_transform.html#example-plot-medial-transform-py)
> [Dégradé d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_gradients/py_gradients.html#gradients)
> ![gradient.png](https://qiita-image-store.s3.amazonaws.com/0/83761/24cb2b3d-05a1-6eff-e67a-5d6e36eb537e.png)
Trouvez des dégradés d'image, des contours et plus encore.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Scikit-Image/Edgeoperators エッジ操作](http://scikit-image.org/docs/dev/auto_examples/plot_edge_filter.html#example-plot-edge-filter-py)
> [Détection Canny Edge](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_canny/py_canny.html#canny)
![imgproc_8](http://docs.opencv.org/3.0-beta/_images/canny.jpg) Cannyエッジ検出を使ってエッジを見つけてみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Scikit-Image/Cannyedgedetector Cannyエッジ検出器](http://scikit-image.org/docs/dev/auto_examples/plot_canny.html#example-plot-canny-py)
Les détecteurs de bord Canny sont souvent utilisés lorsque la précision de la position des bords est requise. Les matériaux suivants expliquent bien.
[Détecteur de bord optimal (Advanced Computer Vision, Université de Wakayama)](http://www.wakayama-u.ac.jp/~wuhy/CV05.pdf)
> [Pyramide d'images](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_pyramids/py_pyramids.html#py-pyramids)
![imgproc_14](http://docs.opencv.org/3.0-beta/_images/pyramid.png) 画像ピラミッドとそれを画像混合に使う方法を学びます。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Buildimagepyramids 画像ピラミッドを作る](http://scikit-image.org/docs/dev/auto_examples/plot_pyramid.html#example-plot-pyramid-py)
> [Traitement des contours avec OpenCV](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_table_of_contents_contours/py_table_of_contents_contours.html#table-of-content-contours)
![contours.png](https://qiita-image-store.s3.amazonaws.com/0/83761/1d222e37-4103-4ba8-3ea2-7490db9e3036.png) OpenCVにある輪郭処理の全て。
> #### ** Contouring avec OpenCV **
> [Plan: commençons](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.html#contours-getting-started)
>![contour_1](http://docs.opencv.org/3.0-beta/_images/contour_starting.jpg)
Trouvez le contour et dessinez
> [Caractéristiques générales](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contour_features/py_contour_features.html#contour-features)
>![Contour_2](http://docs.opencv.org/3.0-beta/_images/contour_features.jpg) Découvrez comment trouver diverses caractéristiques de contour, zones, périmètres, rectangles circonscrits, etc.
Remarque: cv2.findContours () a des effets secondaires. L'image binaire donnée comme cv2.findContours (thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) réécrit la valeur de thresh. Si vous ne voulez pas être réécrit, c'est une bonne idée de faire une copie et de lui donner une copie.
Le rectangle pivoté est un rectangle circonscrit plus proche de la forme du contour.
> [Propriétés de contour](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contour_properties/py_contour_properties.html#contour-properties)
>![Contour_3](http://docs.opencv.org/3.0-beta/_images/contour_properties.jpg) Apprenez à trouver différentes caractéristiques de contour, solidité, résistance moyenne et plus encore.
> [Aperçu: Autres fonctions](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contours_more_functions/py_contours_more_functions.html#contours-more-functions)
>![contour_4](http://docs.opencv.org/3.0-beta/_images/contour_defects.jpg)
Apprenez à trouver des défauts de convexité, à pointer des tests de polygone et à faire correspondre différentes formes.
> [Hiérarchie des contours](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_contours/py_contours_hierarchy/py_contours_hierarchy.html#contours-hierarchy)
>![contour_5](https://qiita-image-store.s3.amazonaws.com/0/83761/b90b85f0-a046-c666-a427-f9543ed9f836.png)
Découvrez la hiérarchie des contours.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Contourfinding 輪郭を見つける](http://scikit-image.org/docs/dev/auto_examples/plot_contours.html#example-plot-contours-py)
> [Histogramme dans OpenCV](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_table_of_contents_histograms/py_table_of_contents_histograms.html#table-of-content-histograms)
![histogram.png](https://qiita-image-store.s3.amazonaws.com/0/83761/a7d76636-fa36-3ea5-93ab-8afecb91d1ef.png) OpenCVにあるヒストグラムの全て。
> #### Histogramme OpenCV OpenCV
[Histogrammes-1: Trouvez, tracez et analysez! !! !! ](Http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_begins/py_histogram_begins.html#histograms-getting-started)
>![Hist_1](http://docs.opencv.org/3.0-beta/_images/histograms_1d.jpg) Trouvez l'histogramme et dessinez-le.
> [Histogrammes-2: aplatissement de l'histogramme](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_equalization/py_histogram_equalization.html#py-histogram-equalization)
>![Hist_2](http://docs.opencv.org/3.0-beta/_images/histograms_equ.jpg) Apprenez à aplatir l'histogramme pour obtenir une image de bon contraste.
> [Histogrammes --3: histogramme bidimensionnel](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_2d_histogram/py_2d_histogram.html#twod-histogram)
>![Hist_3](http://docs.opencv.org/3.0-beta/_images/histograms_2d.jpg) Apprenez à trouver et à tracer un histogramme à deux dimensions.
> [Histogramme-4: Rétroprojection de l'histogramme](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_histograms/py_histogram_backprojection/py_histogram_backprojection.html#histogram-backprojection)
>![Hist_4](http://docs.opencv.org/3.0-beta/_images/histograms_bp.jpg) Apprenez à projeter en arrière un histogramme sur un objet de couleur régionale.
Remarque: dans l'exemple du didacticiel OpenCV-Python lié, lorsque vous indiquez une partie de la pelouse à partir d'une image de football, la couleur correspondante de l'image entière est basée sur une partie de l'histogramme de cette image. Il est conçu pour projeter en arrière la zone de.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[HistogramEqualization ヒストグラムの平坦化](http://scikit-image.org/docs/dev/auto_examples/plot_equalize.html#example-plot-equalize-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[LocalHistogramEqualization](http://scikit-image.org/docs/dev/auto_examples/plot_local_equalize.html#example-plot-local-equalize-py)
> [Conversion d'image avec OpenCV](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_transforms/py_table_of_contents_transforms/py_table_of_contents_transforms.html#table-of-content-transforms)
![imgproc_7](http://docs.opencv.org/3.0-beta/_images/transforms.jpg) フーリエ変換、コサイン変換などOpenCVにある様々な画像変換に出会ってみましょう。
> [Correspondance des modèles](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_template_matching/py_template_matching.html#py-template-matching)
![imgproc_9](http://docs.opencv.org/3.0-beta/_images/template.jpg) テンプレートマッチングを用いて画像中から物体を探してみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[TemplateMatching テンプレートマッチング](http://scikit-image.org/docs/dev/auto_examples/plot_template.html#example-plot-template-py)
Remarque: l'exemple de code de correspondance de modèle OpenCV-Python montre différentes techniques de correspondance de modèle, mais montre que certaines techniques touchent autre chose au lieu de la zone cible. La qualité de la technique dépend de la nature de l'image utilisée pour la mise en correspondance des modèles. Dans un monde où les conditions sont contrôlées, comme la vision industrielle, des algorithmes simples à faible calcul peuvent être efficaces.
> [Conversion de ligne de Huff](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html#py-hough-lines)
![imgproc_10](http://docs.opencv.org/3.0-beta/_images/houghlines.jpg) 画像の中から線を検出してみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[StraightlineHoughtransform 直線ハフ変換](http://scikit-image.org/docs/dev/auto_examples/plot_line_hough_transform.html#example-plot-line-hough-transform-py)
> [Conversion de Huff Yen](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html#hough-circles)
![imgproc_11](http://docs.opencv.org/3.0-beta/_images/houghcircles.jpg) 画像の中から円を検出してみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[CircularandEllipticalHoughTransforms 円・楕円ハフ変換](http://scikit-image.org/docs/dev/auto_examples/plot_circular_elliptical_hough_transform.html#example-plot-circular-elliptical-hough-transform-py)
> [Division de la zone des images basée sur l'algorithme Watershed](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_watershed/py_watershed.html#watershed)
>![Imgproc_13](http://docs.opencv.org/3.0-beta/_images/watershed.jpg) Divisons la zone d'image en utilisant l'algorithme Watershed.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Watershedsegmentation Watershed(分水嶺)アルゴリズムの領域分割](http://scikit-image.org/docs/dev/auto_examples/plot_watershed.html#example-plot-watershed-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Markersforwatershedtransform Watershed(分水嶺)変換へのマーカー](http://scikit-image.org/docs/dev/auto_examples/plot_marked_watershed.html#example-plot-marked-watershed-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Randomwalkersegmentation](http://scikit-image.org/docs/dev/auto_examples/plot_random_walker_segmentation.html#example-plot-random-walker-segmentation-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Findtheintersectionoftwosegmentations2種類の領域分割の積を見つける](http://scikit-image.org/docs/dev/auto_examples/plot_join_segmentations.html#example-plot-join-segmentations-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Comparingedge-basedsegmentationandregion-basedsegmentation エッジベースの領域分割と領域ベースの領域分割](http://scikit-image.org/docs/dev/auto_examples/applications/plot_coins_segmentation.html#example-applications-plot-coins-segmentation-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Labelimageregions 画像領域をラベリングする](http://scikit-image.org/docs/dev/auto_examples/plot_label.html#example-plot-label-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Immunohistochemicalstainingcolorsseparation](http://scikit-image.org/docs/dev/auto_examples/plot_ihc_color_separation.html#example-plot-ihc-color-separation-py)
> [Extraction interactive de premier plan à l'aide de l'algorithme GrabCut](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_grabcut/py_grabcut.html#grabcut)
>![Imgproc_15](http://docs.opencv.org/3.0-beta/_images/grabcut1.jpg) Extrayons le premier plan avec l'algorithme GrabCut.
***
> ### ** Détection et description des fonctionnalités **
[Comprendre les fonctionnalités](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_meaning/py_features_meaning.html#features-meaning)
![f2d_1](http://docs.opencv.org/3.0-beta/_images/features_icon.jpg) その画像の主な特徴はなんだろうか? 見つけられたこれらの特徴はどのように役に立つのか?
> [Détection de coin Harris](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html#harris-corners)
![f2d_2](http://docs.opencv.org/3.0-beta/_images/harris_icon.jpg) ええ、コーナーはよい特徴? でもどうやって見つけますか?
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Cornerdetection コーナー検出](http://scikit-image.org/docs/dev/auto_examples/plot_corner.html)
> [Détecteur de coin Shi-Tomasi et bonnes fonctionnalités à suivre](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.html#shi- tomasi)
![f2d_3](http://docs.opencv.org/3.0-beta/_images/shi_icon.jpg)
Jetons un coup d'œil aux détails de la détection de coin Shi-Tomasi.
> [Introduction à la fonctionnalité SIFT (Transformation de fonctionnalité à variation d'échelle)](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html#sift-intro)
![f2d_4](http://docs.opencv.org/3.0-beta/_images/sift_icon.jpg) Harrisコーナー検出器は、画像の縮尺が変わるときには、十分良いとは言い切れません。 Loweは、縮尺に影響しない特徴を見つけるブレークスルーとなる手法を開発しました。それはSIFT特徴量と呼ばれています。
> [Présentation des fonctionnalités de SURF (fonctionnalités robustes accélérées)](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.html#surf)
![f2d_5](http://docs.opencv.org/3.0-beta/_images/surf_icon.jpg) SIFT特徴量は確かにいい特徴です。しかし、十分速いとは言えません。そこでSURF特徴量と呼ばれる高速化版が作られました。
> [Algorithme FAST pour la détection des coins](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_fast/py_fast.html#fast)
![f2d_06](http://docs.opencv.org/3.0-beta/_images/fast_icon.jpg) 上に示した特徴検出器は全てよいものです。しかし、SLAM(訳注:SimultaneousLocalizationandMapping、自己位置推定と環境地図作成を同時に行うこと)のようなリアルタイムの用途に使えるほど十分に速いとは言えません。そこでFASTアルゴリズムの登場です。これは本当に"FAST(速い)"です。
> [BREF Fonctionnalités élémentaires indépendantes](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_brief/py_brief.html#brief)
![f2d_07](http://docs.opencv.org/3.0-beta/_images/brief.jpg) SIFT特徴量は、128個の浮動小数点からなる特徴記述子を用いています。そのような特徴量を数千個あつかうことを考えてごらんなさい。そのときたくさんのメモリーとマッチングのためにたくさんの時間を使
est. Vous pouvez compresser les fonctionnalités pour les rendre plus rapides, mais vous devez tout d'abord calculer les fonctionnalités. C'est là que BRIEF entre en jeu, offrant un raccourci pour trouver des descripteurs binaires avec moins de mémoire, une correspondance plus rapide et une reconnaissance plus élevée.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Scikit-Image/BRIEFbinarydescriptor](http://scikit-image.org/docs/dev/auto_examples/plot_brief.html)
> [Fonctionnalités ORB (Oriented FAST and Rotated BRIEF)](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_orb/py_orb.html#orb)
![f2d_08](http://docs.opencv.org/3.0-beta/_images/orb.jpg) SIFT特徴量とSURF特徴量はとてもよく動くのだけれども、あなたの用途の中で使うには毎年数ドル払わなければならないとしたらどうしますか? それらは特許が成立しているのです。その問題を解決するには、OpenCVの開発者はSIFT特徴量とSURF特徴量への新しい"FREE"な代替品、ORBを思いつきました。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Scikit-Image/ORBfeaturedetectorandbinarydescriptor](http://scikit-image.org/docs/dev/auto_examples/plot_orb.html#example-plot-orb-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[CENSUREfeaturedetector](http://scikit-image.org/docs/dev/auto_examples/plot_censure.html#example-plot-censure-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[DenseDAISYfeaturedescription](http://scikit-image.org/docs/dev/auto_examples/plot_daisy.html#example-plot-daisy-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[GLCMTextureFeatures](http://scikit-image.org/docs/dev/auto_examples/plot_glcm.html#example-plot-glcm-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[HistogramofOrientedGradients HOG特徴量](http://scikit-image.org/docs/dev/auto_examples/plot_hog.html#example-plot-hog-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[LocalBinaryPatternfortextureclassification](http://scikit-image.org/docs/dev/auto_examples/plot_local_binary_pattern.html#example-plot-local-binary-pattern-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Multi-BlockLocalBinaryPatternfortextureclassification](http://scikit-image.org/docs/dev/auto_examples/plot_multiblock_local_binary_pattern.html#example-plot-multiblock-local-binary-pattern-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Gaborfilterbanksfortextureclassification](http://scikit-image.org/docs/dev/auto_examples/plot_gabor.html#example-plot-gabor-py)
Remarque: Le filtre Gabor "[Le filtre Gabor 2D s'est avéré capable de modéliser l'activité de cellules simples dans le champ visuel initial](https://ja.wikipedia.org/wiki/%E3%82] % AC% E3% 83% 9C% E3% 83% BC% E3% 83% AB% E3% 83% 95% E3% 82% A3% E3% 83% AB% E3% 82% BF) "Wikipedia.
Remarque: lors de la mise en correspondance d'entités, le nombre de points d'entités générés à partir de l'image d'origine est également un facteur important. Même si la quantité d'entités dépend peu de l'échelle, de l'angle de rotation et de l'angle de vue dans l'espace tridimensionnel et permet un ajustement stable, elle est inutile si le nombre de points d'entités générés est trop petit. Cela dépend de l'utilisation prévue et de la nature du groupe d'images d'entrée, donc je pense que l'attrait du système de traitement, y compris des bibliothèques telles que OpenCV-Python et scicit-image, est que vous pouvez facilement essayer un grand nombre de fonctionnalités. ..
> [Correspondance de quantité de fonctionnalités](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_matcher/py_matcher.html#matcher)
![f2d_09](http://docs.opencv.org/3.0-beta/_images/matching.jpg) 特徴検出器と記述子についてたくさん理解しました。異なる記述子を対応付ける方法を学ぶときです。OpenCVはそのために2つの手法、Brute-Forceマッチング手法とFLANNに基づくマッチング手法です。
> [Correspondance des fonctionnalités et homographie pour la recherche d'objets](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_feature_homography/py_feature_homography.html#py-feature-homography)
![f2d_10](http://docs.opencv.org/3.0-beta/_images/homography_icon.jpg) いま特徴量マッチングについて知っているので、複雑な画像中の物体を見つけるためにcalib3dモジュールとともに混ぜ合わせてみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[RobustmatchingusingRANSAC RANSACを用いたロバストなマッチング](http://scikit-image.org/docs/dev/auto_examples/plot_matching.html#example-plot-matching-py)
***
> ### ** Analyse vidéo **
> [Suivi Meanshift et Camshift](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_video/py_meanshift/py_meanshift.html#meanshift)
![vdo_1](http://docs.opencv.org/3.0-beta/_images/camshift.jpg) 私たちは既に、色に基づく追跡の例を見ました。それは単純なものです。ここでは、もっとよいアルゴリズムである平均値シフトとその改良版であるCamShiftが対象をどう見つけ追跡するのか見てみましょう。
> [Flux optique]
(http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html#lucas-kanade)
![vdo_2](http://docs.opencv.org/3.0-beta/_images/opticalflow.jpeg) 重要な概念、オプティカルフローについて学びましょう。それは動画に関連していて、たくさんの用途があります。
> [Suppression d'arrière-plan](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.html#py-background-subtraction)
![vdo_b](http://docs.opencv.org/3.0-beta/_images/background.jpg) いくつかのアプリケーションでは、物体追跡のように前景を抜き出す必要があります。背景除去は、それらの場合に役立つよく知られた手法です。
***
> ### ** Calibrage de la caméra et reconstruction 3D **
> [Calibration de la caméra](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_calibration/py_calibration.html#calibration)
![calib_1](http://docs.opencv.org/3.0-beta/_images/calibration_icon.jpg) 利用しているカメラがどれだけ良いものか試してみましょう。それで撮影した画像に歪みが見られるでしょうか?もしあれば、どう補正しましょうか?
> [Estimation d'attitude](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_pose/py_pose.html#pose-estimation)
![calib_2](http://docs.opencv.org/3.0-beta/_images/pose_icon.jpg) calibモジュールを用いてちょっとしたかっこいい3D効果を作るのに役立つ短いセッションです。
> [Géométrie épipolaire](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.html#epipolar-geometry)
![calib_3](http://docs.opencv.org/3.0-beta/_images/epipolar_icon.jpg) エピポーラ幾何とエピポーラ制約を理解しましょう。
> [Informations sur la distance de profondeur de l'image stéréo](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_calib3d/py_depthmap/py_depthmap.html#py-depthmap)
![calib_4](http://docs.opencv.org/3.0-beta/_images/depthmap_icon.jpg) 2D画像群から奥行き情報を得ます。
***
> ### ** Apprentissage automatique **
> [Méthode K-Nearest Neighbor](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_knn/py_knn_index.html#knn)
![ML_KNN](http://docs.opencv.org/3.0-beta/_images/knnicon.png) K最近傍法の使い方を学ぶとともに、K最近傍法を用いて手書きの数字認識について学びます。
> [Support Vector Machine (SVM)](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_svm/py_svm_index.html#svm)
![ML_SVM](http://docs.opencv.org/3.0-beta/_images/svmicon.png) SVMの考え方を理解します
> [Méthode moyenne de K](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_index.html#kmeans-clustering)
![kmeansicon.png](https://qiita-image-store.s3.amazonaws.com/0/83761/369a8dad-ae89-1a49-eeb6-cc473e78366b.png)
> Apprenez à classer les données en groupes de clusters à l'aide de la méthode de moyenne K. Ensuite, vous apprendrez à quantifier les couleurs en utilisant la méthode de moyenne K.
***
>###**Computational Photography**
Ici, vous découvrirez les différentes fonctionnalités d'OpenCV liées à la photographie computationnelle, telles que le bruit d'image.
> [Suppression du bruit d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_photo/py_non_local_means/py_non_local_means.html#non-local-means)
![photo_1](http://docs.opencv.org/3.0-beta/_images/nlm_icon1.jpg) Non-local Meansノイズ除去と呼ばれる画像からノイズを除去する良好な手法を見ていただきます。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Denoisingapicture](http://scikit-image.org/docs/dev/auto_examples/plot_denoise.html)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Non-localmeansdenoisingforpreservingtextures](http://scikit-image.org/docs/dev/auto_examples/plot_nonlocal_means.html#example-plot-nonlocal-means-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[ImageDeconvolution](http://scikit-image.org/docs/dev/auto_examples/plot_restoration.html#example-plot-restoration-py)
> [Réparation d'image](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_photo/py_inpainting/py_inpainting.html#inpainting)
![photo_2](http://docs.opencv.org/3.0-beta/_images/inpainticon.jpg) たくさんの黒点とひっかきを生じた古い劣化した写真を持っていませんか?それを持ってきて、画像修復と呼ばれる方法でそれらを復元してみましょう。
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[Seamcarving](http://scikit-image.org/docs/dev/auto_examples/plot_seam_carving.html)
La découpe de couture est une tentative de réduire le rapport hauteur / largeur sans ajouter de distorsion en supprimant les zones d'image moins importantes.
***
> ### ** Détection d'objets **
[Détection de visage à l'aide du détecteur de cascade Haar](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_objdetect/py_face_detection/py_face_detection.html#face-detection)
![objdet_1](http://docs.opencv.org/3.0-beta/_images/face_icon.jpg) Haar カスケード検出器を用いた顔検出
Dans le domaine de la détection d'objets, scikit-image fournit des fonctionnalités HOG qui sont utilisées comme méthode typique de détection humaine.
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[HistogramofOrientedGradients HOG特徴量](http://scikit-image.org/docs/dev/auto_examples/plot_hog.html#example-plot-hog-py)
En utilisant cette bibliothèque, payashim ["Détecter les personnes faites avec scikit-learn et scikit-image"](https://github.com/payashim/python_visual_recognition_tutorials)
Est ouvert au public.
***
> ### ** Liaison OpenCV-Python **
Voyons maintenant comment sont créées les liaisons OpenCV-Python.
> [Comment fonctionne la liaison OpenCV-Python? ](Http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_bindings/py_bindings_basics/py_bindings_basics.html#bindings-basics)
![bind1](http://docs.opencv.org/3.0-beta/_images/nlm_icon.jpg) OpenCV-Pythonバインディングがどのように作られているのか学びましょう。
### **![Scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png) Comment Scikit-Image est-il implémenté? Es-tu **
Alors qu'OpenCV est implémenté en C ++, Scikit-Image est écrit en langage Python et en langage Cython basé sur Python.
Dans un langage typé dynamiquement, la vitesse d'exécution du programme sera plus lente que dans un langage typé dynamiquement pour le traitement pour déterminer le type. De plus, dans un langage qui vérifie la plage d'indices lors de l'accès à un élément d'un tableau, la vitesse d'exécution a tendance à être lente afin d'assurer sa sécurité. Par conséquent, il est préférable de décrire le processus à l'aide d'une fonction / méthode qui traite le tableau collectivement, au lieu de la description qui doit vérifier la plage d'indices.
[L'écriture explicite d'une boucle avec numpy est extrêmement lente](http://qiita.com/nonbiri15/items/ef97b84832055ab807fb)
Est une description des circonstances autour de cela.
Par conséquent, basé sur la grammaire basée sur Python, le langage Cython tente d'accélérer en simplifiant la spécification de type explicite et en vérifiant la plage d'indices lors de l'écriture d'une boucle. .. Que ce soit cv :: Mat ou numpy, l'idée est similaire, il est donc facile de passer de l'un à l'autre. L'article suivant a été écrit par quelqu'un qui étudie le langage Cython.
[Comprendre scikit-image (exemple Cython)](http://qiita.com/nonbiri15/items/1011eb9e658c53025e5e)
[Comprendre scikit-image 2 (exemple Cython)](http://qiita.com/nonbiri15/items/d3643721d351eb908337)
"Accélérer Cython Python en fusionnant avec C" (http://www.oreilly.co.jp/books/9784873117270/)
***
Une bibliothèque qui n'a pas pu être directement liée aux "Tutoriels OpenCV-Python"
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[NormalizedCut](http://scikit-image.org/docs/dev/auto_examples/plot_ncut.html#example-plot-ncut-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[RAGThresholding 領域隣接グラフ閾値処理](http://scikit-image.org/docs/dev/auto_examples/plot_rag_mean_color.html#example-plot-rag-mean-color-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[RAGMerging 領域隣接グラフ](http://scikit-image.org/docs/dev/auto_examples/plot_rag_merge.html#example-plot-rag-merge-py)
![scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0/83761/3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png)[DrawingRegionAdjacencyGraphs(RAGs) 領域隣接グラフを書く](http://scikit-image.org/docs/dev/auto_examples/plot_rag_draw.html#example-plot-rag-draw-py)
Ci-dessus, des informations sur la comparaison avec scicit-image ont été ajoutées à certaines traductions japonaises des didacticiels OpenCV-Python.
Recommended Posts