"Tutoriels OpenCV-Python" et mahotas

En ce qui concerne la traduction des "Tutoriels OpenCV-Python", cette fois je l'ai comparée avec des mahotas.

** Qu'est-ce que Mahotas **

Il existe plusieurs bibliothèques qui utilisent Python pour la reconnaissance d'images, mais il existe également une bibliothèque appelée mahotas. Cela utilise également le format de données numpy. Pour les bibliothèques qui effectuent la reconnaissance d'image avec Python,

il y a. mahotas est développé en C ++, se concentrant sur le fait d'être une bibliothèque pour Python.

mahotas Why did you not simply contribute to scipy.ndimage or scikits.image? Cela explique pourquoi mahotas existe en tant que bibliothèque différente de scipy et scicit-image.

Vous pouvez obtenir les dernières informations sur toutes les fonctions implémentées dans les mahotas en lançant [Python (x, y)] [Documentation] [Python documentation server] et en accédant aux mahotas à partir des packages de site.

http://mahotas.readthedocs.org/en/latest/index.html


** Introduction à OpenCV **

Tutoriel d'introduction à OpenCV-Python

Intro_1 Commençons avec OpenCV-Python

Installer OpenCV-Python sur Windows Install_1 Rendre OpenCV disponible pour Windows.

Installer OpenCV-Python sur Fedora

Install_2 Rendre OpenCV disponible dans Fedora.

Si vous utilisez Python (x, y) sous Windows, commencez par >>> import mahotas S'il vous plaît essayez. S'il n'y a aucune erreur, vous avez déjà confirmé que mahotas est installé en tant que plug-in Python (x, y) standard. Si vous obtenez une erreur, vous pouvez obtenir un module python compilé [site de Christoph Gohlke] Il est recommandé d'installer à partir de (http://www.lfd.uci.edu/~gohlke/pythonlibs/). Je ne recommande pas la compilation à partir du code source dans Visual Studio (Note 1) Comment installer Mahotas est indiqué sur le site Mahotas comme suit:

mahotas How To Install Mahotas


** Fonctionnalités GUI dans OpenCV **

Commençons la manipulation d'image gui_1画像を読み込むこと、表示すること、保存することを学びます。

Commençons l'opération vidéo gui_2 動画の再生、カメラからの動画のキャプチャと動画としての保存を学びましょう。

Fonctions de dessin OpenCV gui_5 直線、矩形、楕円、円などをOpenCVを使って描画することを学びます。

Utilisez la souris comme un pinceau gui_3 マウスを使って塗りつぶし

Utiliser la Trackbar comme palette de couleurs gui_4 パラメータを制御するためのtrackbarを作る


** Fonctionnement principal **

Opération de base sur les images

core_1 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.

"Système d'apprentissage automatique pratique" Chapitre 10 Reconnaissance des modèles de vision par ordinateur L'importation d'images à l'aide de mahotas est introduite. Encore une fois, le format des données après lecture est numpy.array. Le nom de la fonction est également imread (). Puisque mahotas.imread (nom) est lu dans l'ordre RVB, il est compatible lors de l'affichage avec imshow () de matplotlib. (Note 2)

python


#!/usr/bin/python
# -*- coding: utf-8 -*-
import mahotas as mh
import pylab as plt

img=mh.imread("img_0000.png ")

plt.figure(1)
plt.imshow(img)
plt.show()

Opérations arithmétiques sur les images

core_2 Effectue des opérations arithmétiques sur l'image.

[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 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 core_5 PCA(Principalcomponentsanalysis 主成分分析)、SVD(singularvaluedecomposition 特異値分解)などのOpenCVで提供されている数学的手法のいくつかを学びます。


** Traitement d'image avec OpenCV **

Modifier l'espace colorimétrique imgproc_1 異なる色空間で画像を変換する方法を学びましょう。そして動画で色つきの物体を追跡させてみましょう。

mahotas Color Space Conversions

Existe-t-il une conversion en sépia caractéristique de la conversion d'espace colorimétrique mahotas? La conversion de l'espace colorimétrique d'OpenCV étant conséquente, il vaut mieux l'utiliser en complément.

lenas = mh.colors.rgb2sepia(lena)

Transformation géométrique de l'image imgproc_gt 回転、変形などのさまざまな幾何変換を施してみましょう。

Traitement du seuil d'image imgproc_2 画像をグローバルしきい値、適応的閾値処理 、大津の2値化などで2値化画像に変換してみましょう。

mahotas inclut également la binarisation d'Otsu. Une autre méthode de binarisation méthode Riddler-Calvard est également implémentée.

Lissage d'image blurring.png 画像をぼかしたり、あつらえたカーネルを用いた画像にフィルタすることを学びます。

Conversion morphologique

Imgproc_12 Mols tels que contraction, expansion, ouverture, fermeture, etc. En savoir plus sur la transformation phologique.

L'expansion et la contraction sont également incluses dans OpenCV, mais l'expansion et la contraction conditionnelles ne sont pas incluses dans OpenCV et les mahotas Il est inclus dans, et il semble qu'il vaut la peine de bien l'utiliser.

mahotas Dilation & Erosion

mahotas Conditional morphological erosion.

mahotas Conditional dilation

Dégradé d'image

Gradient.png Trouvez des dégradés d'image, des bords, etc. Faisons le.

Détection Canny Edge

Imgproc_8 Trouvons le bord en utilisant la détection de bord Canny.

mahotas détection des contours Sobel

mahotas a une différence de gaussien. Compute edges using the Difference of Gaussian (DoG) operator. Cette opération différentielle est incluse dans la procédure de calcul des caractéristiques SIFT. OpenCV n'a pas de différence directe de Gauss. Un exemple de son implémentation avec stackoverflowを見つけて利用してみることができます。

Pyramide d'images imgproc_14 画像ピラミッドとそれを画像混合に使う方法を学びます。

** Contouring avec OpenCV **

Plan: commençons

contour_1 Trouvez le contour et dessinez

Caractéristiques générales

Contour_2 Découvrez comment trouver diverses caractéristiques de contour, zones, périmètres, rectangles circonscrits, etc.

OpenCV est sans doute la bibliothèque la plus complète pour le traitement d'images et la reconnaissance d'images, mais la liaison en Python ne signifie pas nécessairement que vous pouvez utiliser toutes ses fonctionnalités. L'étiquetage, par exemple, est l'une de ces caractéristiques. Les bibliothèques telles que les mahotas peuvent compenser les fonctionnalités manquantes dans le framework OpenCV-Python actuel (cv2) (Note 3).

Labeling Images

Propriétés de contour Contour_3 Apprenez à trouver différentes caractéristiques de contour, solidité, résistance moyenne et plus encore.

Aperçu: Autres fonctions

contour_4 Apprenez à trouver des défauts de convexité, à pointer des tests de polygone et à faire correspondre différentes formes.

mahotas Coque convexe coque convexe

Hiérarchie des contours

contour_5 Découvrez la hiérarchie des contours.

Histogramme dans OpenCV histogram.png OpenCVにあるヒストグラムの全て。

Histogramme OpenCV OpenCV

Histogrammes-1: Trouvez, tracez et analysez! !! !!

Hist_1 Trouvez l'histogramme et dessinez-le.

Histogrammes-2: aplatissement de l'histogramme

Hist_2 Apprenez à aplatir l'histogramme pour obtenir une image de bon contraste.

Histogrammes --3: histogramme bidimensionnel

Hist_3 Apprenez à trouver et à tracer un histogramme à deux dimensions.

Histogramme-4: Rétroprojection de l'histogramme

Hist_4 Apprenez à projeter en arrière un histogramme sur un objet de couleur régionale.

Conversion d'image avec OpenCV imgproc_7 フーリエ変換、コサイン変換などOpenCVにある様々な画像変換に出会ってみましょう。

Correspondance des modèles imgproc_9 テンプレートマッチングを用いて画像中から物体を探してみましょう。

mahotas Match template to image

Conversion de ligne de Huff imgproc_10 画像の中から線を検出してみましょう。

Conversion de Huff Yen imgproc_11 画像の中から円を検出してみましょう。

Division de la zone des images basée sur l'algorithme Watershed Imgproc_13 Divisons la zone d'image en utilisant l'algorithme Watershed.

mahotas [Seeded watershed in n-dimensions] (http://mahotas.readthedocs.org/en/latest/api.html?highlight=watershed#mahotas.cwatershed)

Extraction interactive de premier plan à l'aide de l'algorithme GrabCut

Imgproc_15 Extrayons le premier plan avec l'algorithme GrabCut.


** Détection et description des fonctionnalités **

Comprendre les fonctionnalités

F2d_1 Quelles sont les principales caractéristiques de l'image? Dans quelle mesure ces fonctionnalités sont-elles utiles?

Détection de coin Harris f2d_2 ええ、コーナーはよい特徴? でもどうやって見つけますか?

[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 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)

F2d_4 Le détecteur de coin Harris n'est pas assez bon lorsque l'échelle de l'image change. Lowe a développé une méthode révolutionnaire pour trouver des fonctionnalités qui n'affectent pas l'échelle. Il s'agit de la quantité de caractéristiques SIFT.

Présentation des fonctionnalités de SURF (fonctionnalités robustes accélérées)

F2d_5 Les fonctionnalités SIFT sont certainement de bonnes fonctionnalités. Mais ce n'est pas assez rapide. Par conséquent, une version haute vitesse appelée quantité de fonctionnalités SURF a été créée.

mahotas a aussi SURF. Speeded-Up Robust Features

Algorithme FAST pour la détection des coins f2d_06 上に示した特徴検出器は全てよいものです。しかし、SLAM(訳注:SimultaneousLocalizationandMapping、自己位置推定と環境地図作成を同時に行うこと)のようなリアルタイムの用途に使えるほど十分に速いとは言えません。そこでFASTアルゴリズムの登場です。これは本当に"FAST(速い)"です。

BREF Fonctionnalités élémentaires indépendantes f2d_07 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.

Fonctionnalités ORB (Oriented FAST and Rotated BRIEF) f2d_08 SIFT特徴量とSURF特徴量はとてもよく動くのだけれども、あなたの用途の中で使うには毎年数ドル払わなければならないとしたらどうしますか? それらは特許が成立しているのです。その問題を解決するには、OpenCVの開発者はSIFT特徴量とSURF特徴量への新しい"FREE"な代替品、ORBを思いつきました。

Correspondance de quantité de fonctionnalités f2d_09 特徴検出器と記述子についてたくさん理解しました。異なる記述子を対応付ける方法を学ぶときです。OpenCVはそのために2つの手法、Brute-Forceマッチング手法とFLANNに基づくマッチング手法です。

Correspondance des fonctionnalités et homographie pour la recherche d'objets f2d_10 いま特徴量マッチングについて知っているので、複雑な画像中の物体を見つけるためにcalib3dモジュールとともに混ぜ合わせてみましょう。

Mahotas contient des fonctionnalités Haralic qui permettent de distinguer les images lisses et à motifs.

Les fonctionnalités SURF sont également incluses dans les mahotas. "10.4 Description par caractéristiques locales"]

mahotas Local Binary Patterns


** Analyse vidéo **

Suivi Meanshift et Camshift

Vdo_1 Nous avons déjà vu un exemple de suivi basé sur la couleur. C'est simple. Voyons comment le meilleur algorithme, le décalage moyen et sa version améliorée, CamShift, trouvent et suivent des objets.

[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 Découvrons le concept important, le flux optique. Il est lié à la vidéo et a de nombreuses utilisations.

Suppression d'arrière-plan

Vdo_b Dans certaines applications, il est nécessaire d'extraire le premier plan comme le suivi d'objet. La suppression de l'arrière-plan est une technique bien connue qui aide dans ces cas.


** Calibrage de la caméra et reconstruction 3D **

Calibration de la caméra calib_1 利用しているカメラがどれだけ良いものか試してみましょう。それで撮影した画像に歪みが見られるでしょうか?もしあれば、どう補正しましょうか?

Estimation d'attitude calib_2 Une courte session pour vous aider à créer un petit effet 3D sympa avec le module calib.

Géométrie épipolaire calib_3 エピポーラ幾何とエピポーラ制約を理解しましょう。

Informations sur la distance de profondeur de l'image stéréo calib_4 2D画像群から奥行き情報を得ます。

** Apprentissage automatique **

Méthode K-Nearest Neighbor ML_KNN K最近傍法の使い方を学ぶとともに、K最近傍法を用いて手書きの数字認識について学びます。

Support Vector Machine (SVM) ML_SVM SVMの考え方を理解します

Méthode moyenne de K Kmeansicon.png Un groupe de données utilisant la méthode de moyenne K Apprenez à catégoriser en clusters. 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 photo_1 Non-local Meansノイズ除去と呼ばれる画像からノイズを除去する良好な手法を見ていただきます。

Réparation d'image photo_2 たくさんの黒点とひっかきを生じた古い劣化した写真を持っていませんか?それを持ってきて、画像修復と呼ばれる方法でそれらを復元してみましょう。


** Détection d'objets **

Détection de visage à l'aide du détecteur de cascade Haar objdet_1 Haar カスケード検出器を用いた顔検出


** Liaison OpenCV-Python **

Voyons maintenant comment sont créées les liaisons OpenCV-Python.

Comment fonctionne la liaison OpenCV-Python? bind1 OpenCV-Pythonバインディングがどのように作られているのか学びましょう。

Remarque 1: dans Visual Studio, il est nécessaire d'avoir la même version de Visual Studio que vous utilisez, et il est très gênant d'avoir la même version de Visual Studio qui génère toutes les bibliothèques que vous utilisez. Note 2: Dans le cas de cv2.imread (nom), la commande est BGR, il est donc nécessaire d'utiliser cv2.cvtColor (img, cv2.COLOR_BGR2RGB). Remarque 3: La mise en œuvre des liaisons OpenCV Python dans cv2 est décrite dans le didacticiel OpenCV-Python. De cette manière, Python et C ++ avancés pourront implémenter des fonctions pour lesquelles les liaisons n'ont pas été implémentées. Et comme il est merveilleux d'en faire don à la communauté OpenCV.

Recommended Posts

"Tutoriels OpenCV-Python" et mahotas
"Tutoriels OpenCV-Python" incontournables
"Tutoriels OpenCV-Python" et "Système d'apprentissage automatique pratique"
Ajout d'OpenCV-Python et de Scikit-image aux "incontournables" Tutoriels OpenCV-Python "2"