"OpenCV-Python Tutorials" und Mahotas

In Bezug auf die Übersetzung von "OpenCV-Python Tutorials" habe ich diesmal mit Mahotas verglichen.

** Was ist Mahotas **

Es gibt mehrere Bibliotheken, die Python zur Bilderkennung verwenden, aber es gibt auch eine Bibliothek namens mahotas. Dies verwendet auch das Datenformat von numpy. Für Bibliotheken, die Bilderkennung mit Python durchführen,

es gibt. mahotas wurde in C ++ entwickelt und widmet sich als Bibliothek für Python.

mahotas Why did you not simply contribute to scipy.ndimage or scikits.image? Es erklärt, warum Mahotas als eine Bibliothek existiert, die sich von Scipy und Scicit-Image unterscheidet.

Sie können die neuesten Informationen zu allen in Mahotas implementierten Funktionen erhalten, indem Sie [Python (x, y)] [Dokumentation] [Python-Dokumentationsserver] starten und über Site-Pakete auf Mahotas zugreifen.

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


** Einführung in OpenCV **

Einführung in das OpenCV-Python-Tutorial

Intro_1 Beginnen wir mit OpenCV-Python

OpenCV-Python unter Windows installieren Install_1 Stellen Sie OpenCV für Windows zur Verfügung.

OpenCV-Python auf Fedora installieren

Install_2 Stellen Sie OpenCV in Fedora zur Verfügung.

Wenn Sie Python (x, y) unter Windows verwenden, zuerst >>> import mahotas Bitte versuche. Wenn keine Fehler auftreten, haben Sie bereits bestätigt, dass Mahotas als Standard-Python-Plug-In (x, y) installiert ist. Wenn Sie eine Fehlermeldung erhalten, können Sie ein kompiliertes Python-Modul erhalten [Christoph Gohlkes Website] Es wird empfohlen, von (http://www.lfd.uci.edu/~gohlke/pythonlibs/) zu installieren. Ich empfehle nicht, aus dem Quellcode in Visual Studio zu kompilieren (Hinweis 1). Die Installation von Mahotas wird auf der Mahotas-Website wie folgt gezeigt:

mahotas How To Install Mahotas


** GUI-Funktionen in OpenCV **

Beginnen wir mit der Bildbearbeitung gui_1画像を読み込むこと、表示すること、保存することを学びます。

Starten wir den Videobetrieb gui_2 動画の再生、カメラからの動画のキャプチャと動画としての保存を学びましょう。

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

Verwenden Sie die Maus als Pinsel gui_3 マウスを使って塗りつぶし

Trackbar als Farbpalette verwenden gui_4 パラメータを制御するためのtrackbarを作る


** Kernoperation **

Grundlegende Operation für Bilder

core_1 Sie lernen, wie Sie Pixelwerte lesen und bearbeiten, im ROI (Region of Interest) von Bildern arbeiten und andere grundlegende Vorgänge ausführen.

"Praktisches maschinelles Lernsystem" Kapitel 10 Erkennung von Bildverarbeitungsmustern Das Importieren von Bildern mit Mahotas wird eingeführt. Wieder ist das Datenformat nach dem Lesen numpy.array. Der Funktionsname lautet ebenfalls imread (). Da mahotas.imread (Name) in der Reihenfolge RGB gelesen wird, ist es bei der Anzeige mit imshow () von matplotlib kompatibel. (Anmerkung 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()

Arithmetische Operationen an Bildern

core_2 Führt arithmetische Operationen am Bild aus.

[Methode zur Messung und Verbesserung der Ausführungsleistung] (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_core/py_optimization/py_optimization.html#optimization-techniques)

Core_4 Es ist wichtig, die Antwort zu erhalten. Noch wichtiger ist es jedoch, die Antwort am schnellsten zu erhalten. Überprüfen Sie die Geschwindigkeit Ihres Codes, lernen Sie, Ihren Code zu optimieren und vieles mehr.

Mathematische Methoden in OpenCV core_5 PCA(Principalcomponentsanalysis 主成分分析)、SVD(singularvaluedecomposition 特異値分解)などのOpenCVで提供されている数学的手法のいくつかを学びます。


** Bildverarbeitung mit OpenCV **

Farbraum ändern imgproc_1 異なる色空間で画像を変換する方法を学びましょう。そして動画で色つきの物体を追跡させてみましょう。

mahotas Color Space Conversions

Gibt es eine Umwandlung in Sepia, die für die Umwandlung des Mahotas-Farbraums charakteristisch ist? Da die Umwandlung des Farbraums von OpenCV erheblich ist, ist es besser, ihn als Ergänzung zu verwenden.

lenas = mh.colors.rgb2sepia(lena)

Geometrische Transformation des Bildes imgproc_gt 回転、変形などのさまざまな幾何変換を施してみましょう。

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

Mahotas beinhaltet auch die Binarisierung von Otsu. Eine andere Binärisierungsmethode Riddler-Calvard-Methode ist ebenfalls implementiert.

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

Morphologiekonvertierung

Imgproc_12 Moleküle wie Kontraktion, Expansion, Öffnen, Schließen usw. Erfahren Sie mehr über Phologietransformation.

Expansion und Kontraktion sind ebenfalls in OpenCV enthalten, bedingte Expansion und Kontraktion sind jedoch nicht in OpenCV und Mahotas enthalten Es ist in enthalten, und es scheint, dass es sich lohnt, es gut zu verwenden.

mahotas Dilation & Erosion

mahotas Conditional morphological erosion.

mahotas Conditional dilation

Bildverlauf

Gradient.png Finden Sie Bildverläufe, Kanten usw. Machen wir das.

Canny Edge Detection

Imgproc_8 Lassen Sie uns die Kante mithilfe der Canny-Kantenerkennung finden.

Mahotas Sobel-Kantenerkennung

Mahotas hat einen Unterschied von Gauß. Compute edges using the Difference of Gaussian (DoG) operator. Diese Differentialoperation ist in der Prozedur zur Berechnung der SIFT-Merkmale enthalten. OpenCV hat keinen direkten Unterschied von Gauß. Ein Beispiel für die Implementierung mit Stackoverflowを見つけて利用してみることができます。

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

** Konturieren mit OpenCV **

Gliederung: Los geht's

contour_1 Finde den Umriss und zeichne

Gliederungsfunktionen

Contour_2 Erfahren Sie, wie Sie verschiedene Konturmerkmale, Bereiche, Perimeter, umschreibende Rechtecke usw. finden.

OpenCV ist wohl die vollständigste Bibliothek für die Bildverarbeitung und Bilderkennung. Das Binden in Python bedeutet jedoch nicht unbedingt, dass Sie alle Funktionen nutzen können. Das Beschriften ist beispielsweise ein solches Merkmal. Bibliotheken wie Mahotas können die fehlenden Funktionen im aktuellen OpenCV-Python-Framework (cv2) ausgleichen (Hinweis 3).

Labeling Images

Kontureigenschaften Contour_3 Erfahren Sie, wie Sie verschiedene Kontureigenschaften, Festigkeit, durchschnittliche Festigkeit und mehr finden.

Gliederung: Andere Funktionen

contour_4 Erfahren Sie, wie Sie Konvexitätsfehler finden, Polygontests zeigen und mit verschiedenen Formen übereinstimmen.

Mahotas Konvexer Rumpf konvexer Rumpf

Konturhierarchie

contour_5 Erfahren Sie mehr über die Hierarchie der Konturen.

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

OpenCV OpenCV-Histogramm

Histogramme-1: Finden, zeichnen und analysieren! !! !!

Hist_1 Suchen Sie das Histogramm und zeichnen Sie es.

Histogramme-2: Abflachen des Histogramms

Hist_2 Lernen Sie, das Histogramm zu reduzieren, um ein gutes Kontrastbild zu erhalten.

Histogramme --3: Zweidimensionales Histogramm

Hist_3 Erfahren Sie, wie Sie ein zweidimensionales Histogramm finden und zeichnen.

Histogramm-4: Rückprojektion des Histogramms

Hist_4 Erfahren Sie, wie Sie ein Histogramm auf ein bereichsfarbenes Objekt zurückprojizieren.

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

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

mahotas Match template to image

Huff-Zeilenkonvertierung imgproc_10 画像の中から線を検出してみましょう。

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

Flächenteilung von Bildern basierend auf dem Watershed-Algorithmus Imgproc_13 Teilen wir den Bildbereich mithilfe des Watershed-Algorithmus.

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

Interaktive Vordergrundextraktion mit GrabCut-Algorithmus

imgproc_15 Extrahieren wir den Vordergrund mit dem GrabCut-Algorithmus.


** Funktionserkennung und Funktionsbeschreibung **

Grundlegendes zu Funktionen

F2d_1 Was sind die Hauptmerkmale des Bildes? Wie nützlich sind diese Funktionen?

Harris Corner Detection f2d_2 ええ、コーナーはよい特徴? でもどうやって見つけますか?

[Shi-Tomasi-Eckendetektor und gute Funktionen zum Verfolgen](http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_shi_tomasi/py_shi_tomasi.html#shi- tomasi) f2d_3 Werfen wir einen Blick auf die Details der Shi-Tomasi-Eckenerkennung.

Einführung in die SIFT-Funktion (Scale-Invariant Feature Transform)

F2d_4 Der Harris-Eckendetektor ist nicht gut genug, wenn sich der Maßstab des Bildes ändert. Lowe hat eine bahnbrechende Methode entwickelt, um Funktionen zu finden, die die Skalierung nicht beeinflussen. Es wird als SIFT-Merkmalsmenge bezeichnet.

Einführung in die SURF-Funktionen (Speeded-Up Robust Features)

F2d_5 SIFT-Funktionen sind sicherlich gute Funktionen. Aber es ist nicht schnell genug. Daher wurde eine Hochgeschwindigkeitsversion namens SURF Feature Quantity erstellt.

Mahotas hat auch SURF. Speeded-Up Robust Features

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

KURZE unabhängige Elementarfunktionen f2d_07 SIFT特徴量は、128個の浮動小数点からなる特徴記述子を用いています。そのような特徴量を数千個あつかうことを考えてごらんなさい。そのときたくさんのメモリーとマッチングのためにたくさんの時間を使 ist. Sie können die Features komprimieren, um sie schneller zu machen, aber Sie müssen die Features erst noch berechnen. Hier kommt BRIEF ins Spiel und bietet eine Verknüpfung zum Auffinden von Binärdeskriptoren mit weniger Speicher, schnellerer Übereinstimmung und höherer Erkennung.

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

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

Feature-Matching und Homografie zum Finden von Objekten f2d_10 いま特徴量マッチングについて知っているので、複雑な画像中の物体を見つけるためにcalib3dモジュールとともに混ぜ合わせてみましょう。

Mahotas enthält haralische Merkmale, die zwischen glatten und gemusterten Bildern unterscheiden können.

SURF-Funktionen sind auch in Mahotas enthalten. "10.4 Beschreibung nach lokalen Merkmalen"]

mahotas Local Binary Patterns


** Videoanalyse **

Meanshift- und Camshift-Tracking

Vdo_1 Wir haben bereits ein Beispiel für farbbasiertes Tracking gesehen. Es ist einfach. Lassen Sie uns einen Blick darauf werfen, wie der bessere Algorithmus, Mean Shift und seine verbesserte Version, CamShift, Objekte finden und verfolgen.

[Optischer Fluss] (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_video/py_lucas_kanade/py_lucas_kanade.html#lucas-kanade) Vdo_2 Erfahren Sie mehr über das wichtige Konzept des optischen Flusses. Es bezieht sich auf Video und hat viele Verwendungszwecke.

Entfernen des Hintergrunds

Vdo_b In einigen Anwendungen ist es erforderlich, den Vordergrund wie die Objektverfolgung zu extrahieren. Die Hintergrundentfernung ist eine bekannte Technik, die in diesen Fällen hilft.


** Kamerakalibrierung und 3D-Rekonstruktion **

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

Einstellungsschätzung Cali__2 Eine kurze Sitzung, die Ihnen hilft, mit dem Calib-Modul einen kleinen coolen 3D-Effekt zu erzielen.

Epipolare Geometrie calib_3 エピポーラ幾何とエピポーラ制約を理解しましょう。

Informationen zur Tiefenentfernung vom Stereobild calib_4 2D画像群から奥行き情報を得ます。

** Maschinelles Lernen **

K-nächste Methode ML_KNN K最近傍法の使い方を学ぶとともに、K最近傍法を用いて手書きの数字認識について学びます。

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

K durchschnittliche Methode Kmeansicon.png Lernen Sie, in Cluster zu kategorisieren. Anschließend lernen Sie, Farben mithilfe der K-Mittelungsmethode zu quantisieren.


###Computational Photography Hier erfahren Sie mehr über die verschiedenen Funktionen von OpenCV im Zusammenhang mit Computerfotografie, z. B. Bildentstörung.

Entfernung von Bildrauschen photo_1 Non-local Meansノイズ除去と呼ばれる画像からノイズを除去する良好な手法を見ていただきます。

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


** Objekterkennung **

Gesichtserkennung mit dem Haar-Kaskadendetektor objdet_1 Haar カスケード検出器を用いた顔検出


** OpenCV-Python-Bindung **

Lassen Sie uns nun lernen, wie OpenCV-Python-Bindungen hergestellt werden.

Wie funktioniert die OpenCV-Python-Bindung? bind1 OpenCV-Pythonバインディングがどのように作られているのか学びましょう。

Hinweis 1: In Visual Studio muss dieselbe Version von Visual Studio verwendet werden, die Sie verwenden, und es ist sehr problematisch, dieselbe Version von Visual Studio zu haben, mit der alle von Ihnen verwendeten Bibliotheken erstellt werden. Hinweis 2: Im Fall von cv2.imread (Name) lautet die Reihenfolge BGR, daher muss cv2.cvtColor (img, cv2.COLOR_BGR2RGB) verwendet werden. Hinweis 3: Die Implementierung von OpenCV-Python-Bindungen in cv2 wird im OpenCV-Python-Lernprogramm beschrieben. Auf diese Weise können fortgeschrittenes Python und C ++ Funktionen implementieren, für die keine Bindungen implementiert wurden. Und wie schön es ist, es der OpenCV-Community zu spenden.

Recommended Posts

"OpenCV-Python Tutorials" und Mahotas
Muss "OpenCV-Python Tutorials"
"OpenCV-Python Tutorials" und "Praktisches maschinelles Lernsystem"
OpenCV-Python & Scikit-Image-Ergänzung zu "Must-See" OpenCV-Python Tutorials "2"