Ich habe etwas mehr über "OpenCV-Python-Tutorials" übersetzt, daher ist es eine nützliche Bibliothek mit OpenCV-Python-Bindungen![Scikit-image.png](https://qiita-image-store.s3.amazonaws.com/0 / 83761 / 3cc5cdbc-05ae-3fe0-9ae2-7a5bd32b4d6f.png) Ich habe auch einen Link zu scikit-image hinzugefügt. Beide sind Bibliotheken, die die Numpy-Datenstruktur in Python verwenden, sodass Sie sie in Kombination verwenden können.
Im Fall von Scikit-image wird es in einer Form bereitgestellt, die die Verknüpfung mit OpenCV-Python erleichtert, wobei der Schwerpunkt auf Methoden liegt, die nicht von OpenCV-Python bereitgestellt werden. Da Scikit-image Funktionen ergänzt, die nicht in OpenCV enthalten sind, kann im Rahmen von Python ein breiteres Spektrum an Bilderkennungstechnologien realisiert werden. (Sckit-Image selbst beinhaltet kein maschinelles Lernen, maschinelles Lernen wird separat als Scikit-Lernen bereitgestellt.)
Die Beispielskriptseite in Scikit-image-Beispielen enthält eine Download-Schaltfläche für das Skript. Drücken Sie diese Taste, um das Skript herunterzuladen, öffnen Sie es in einer Python-Umgebung wie Spyder oder IDLE und versuchen Sie, es auszuführen. Im Scikit-Image-Beispiel werden die im Beispiel verwendeten Daten verwendet.
image = data.astronaut()
Da es in Form von gegeben ist, ist die Idee von "Batterie enthalten" in Python gründlich. Daher können auch Anfänger das Programm ausführen, ohne hängen zu bleiben. Es ist noch einfacher, mit dem Beispiel zu experimentieren, da Sie das Eingabebild ändern können, nachdem Sie gesehen haben, dass es funktioniert.
### ** Gemeinsam für OpenCV-Python und Scikit-Image **
Es ist genau das gleiche, da es ein numpy-Array aus Python heraus verwendet.
Es ist genau das gleiche, dass Sie matplotlib verwenden können, um Diagramme zu zeichnen.
Daher ist es genau das gleiche, dass die im Programm verwendeten Matrixdaten mit einer MATLAB-ähnlichen Ausgabe angezeigt und überprüft werden können.
Es ist nicht erforderlich, eine for-Anweisung zum Verarbeiten von Matrixdaten für eine der Bibliotheken zu schreiben, und jede Bibliothek führt eine interne Schleifenverarbeitung durch.
Bibliotheksbenutzer wissen nicht mehr, dass sie optimiert sind.
Sie müssen sich nicht des Unterschieds bewusst sein, wie OpenCV-Python und Scikit-Image für die Verwendung als Bibliothek implementiert sind.
Da es sich um eine Python-Sprachbibliothek handelt, zeigt help (Funktionsname) die Verwendung der Funktion.
### ** Haben Sie die gewünschte Bildverarbeitung / Bilderkennung erreicht **?
Es gibt Methoden, die unterschiedliche Ansätze zur Verarbeitung desselben Zwecks verfolgen. Es ist ermutigend, dass es so viele Beispiele wie möglich mit Code und Daten gibt, die tatsächlich ausgeführt werden können.
Abhängig von der Art der Eingabedaten hängt die Wirksamkeit jedes Algorithmus davon ab.
Einer der Gründe, warum es so viele Hintergrundentfernungs- und Verfolgungsalgorithmen gibt, ist, dass die Art der Eingabedaten bestimmt, welche die besten Ergebnisse liefert.
Wenn Sie herausfinden, welcher ausreicht, können Sie den Arbeitsfortschritt beeinflussen, indem Sie mehrere Algorithmen mit weniger Aufwand ausprobieren und die Auswirkungen der Vorverarbeitung mit weniger Verarbeitung bewerten.
Wenn die entsprechenden Punkte auf zwei Bildern abgeglichen werden, hängt die Anzahl der aus den Bildern erhaltenen Punkte von der Art der verwendeten Merkmalspunkte ab. Darüber hinaus hängt es auch von der Anzahl der verwendeten Merkmale ab, ob aus zwei Bildern mit unterschiedlichen Betrachtungsfeldern gemeinsame Merkmalspunkte erhalten werden können (unabhängig davon, ob sie gegen Änderungen des Betrachtungswinkels resistent sind oder nicht). Wie Sie sehen können, ist es ermutigend, dass scikit-image eine große Bibliothek von Bildfunktionen bietet.
In OpenCV-Python sind die Tutorials nur einige der Techniken, die OpenCV-Python bietet. Probieren Sie nach dem Verschieben des Trackings im Lernprogramm die im Lernprogramm nicht beschriebene Tracking-Technik aus.
### ** Lassen Sie uns die Leistung bewerten **
Angenommen, ein Algorithmus funktioniert gut mit den repräsentativen Daten von Interesse. Es ist jedoch selten, dass der Algorithmus praktisch ist.
In praktischen Daten
・ Der Lärm nimmt zu.
・ Es ist nicht hell genug.
・ Das Bild ist unscharf.
・ Das Bild ist verzerrt.
・ Der Weißabgleich ist nicht in Ordnung.
・ Es ist nicht eben.
-Bildauflösung ist niedrig (oder zu hoch).
-Die Video-Abtastrate ist nicht hoch.
・ Die Themenvielfalt kann nicht abgedeckt werden.
Es besteht die Möglichkeit, dass der erwartete Algorithmus aus verschiedenen Gründen fehlschlägt.
Wenn ein Algorithmus (einschließlich Vor- und Nachbearbeitung) erstellt wird, der diese Probleme löst, wird bestimmt, wie stark er der erwarteten Nutzungsszene standhalten kann.
### ** Lassen Sie uns die Details des Algorithmus überprüfen, während Sie ein Diagramm zeichnen **
OpenCV-Python, Scikit-Image, Scikit-Learn, "Practical Computer Vision" Was allen gemeinsam ist
Der Punkt ist, dass die Daten mit [matplotlib](http://matplotlib.org/) visualisiert werden. Sie müssen auch ein Diagramm zeichnen, um festzustellen, ob der Algorithmus wirklich die erwarteten Ergebnisse liefert. Es ist auch notwendig, die Fortschrittsdaten darüber zu visualisieren, was im Algorithmus geschieht. Es ist notwendig, die Leistung zu bewerten, z. B. warum dieser Algorithmus gewählt wird und wie robust dieser Algorithmus ist. Grafiken für eine solche Überprüfung verbleiben nicht im Quellcode des Endprodukts. Eine gute Validierung in Python hilft bei der Implementierung des Endprodukts in OpenCV-C ++.
### ** Lassen Sie uns die Ausführungsgeschwindigkeit messen **
e1 = cv2.getTickCount()
`# Schreiben Sie hier den Code, um die Ausführungszeit auszuwerten.
e2 = cv2.getTickCount()
timeDiff = (e2 - e1)/ cv2.getTickFrequency()
Wenn Sie die cv2-Funktion zum Messen der Verarbeitungszeit verwenden, können Sie die Verarbeitungszeit auf dieselbe Weise messen, auch wenn sich das Betriebssystem oder die CPU ändert.
Unabhängig davon, ob Sie OpenCV-Python oder Sciki-Image verwenden, zeigt Ihnen der Python-Profiler an, wie oft die gewünschte Funktion aufgerufen wird und wie viel Zeit sie benötigt. Python-Profiler ist unabhängig vom Betriebssystemtyp üblich
profile.run(statement, filename=None, sort=-1)
Sie können es mit tun.
(Von Spyder ist es [Ausführen] [Profil].)
### ** Ausführungsgeschwindigkeit verbessern **
Ich arbeite mit OpenCV-Python, scicit-learn, und es gibt verschiedene Gründe, warum die Ausführungsgeschwindigkeit langsam ist.
-Reduzieren Sie die Größe des Bildes und reduzieren Sie den Verarbeitungsaufwand.
- Wenn im Mehrkernbereich zwei Prozesse parallel ausgeführt werden können, arbeiten Sie in Threads.
Sie können es schneller machen mit.
[Versuchen Sie, Bilder in einen separaten Thread zu laden](http://qiita.com/nonbiri15/items/89238c03b672c8f0579f)
[Das explizite Schreiben einer Schleife mit numpy ist extrem langsam](http://qiita.com/nonbiri15/items/ef97b84832055ab807fb)
Wenn möglich, würde ich mich freuen, wenn wir den Prozess im Rahmen von Python beschleunigen könnten.
Greifen Sie auf die Elemente des Arrays in einer Doppelschleife gegen das Array von numpy zu?
Untersuchen Sie vorhandene Funktionen, damit Sie keine for-Schleife schreiben müssen.
Es gibt nichts, was für vorhandene Funktionen verwendet werden kann, und ich muss eine for-Schleife schreiben.
Wenn Sie die Funktion beschleunigen müssen, sollten Sie sie mit der Cython-Sprache beschleunigen.
### ** Bei der Implementierung in C ++ **
Wenn Sie nicht in C ++ schreiben möchten und über eine ausreichende Erkennungsleistung und Ausführungsgeschwindigkeit verfügen, können Sie die Entwicklung an diesem Punkt stoppen.
(Ich bin froh, wenn Sie ein Kunde sind, der sagt, dass Python genug ist.)
Wenn Sie ein C ++ - Programm möchten, müssen Sie nach OpenCV-C ++ und dann nach OpenCV-C ++ migrieren.
Um den von Scikit-Image verifizierten Algorithmus nach OpenCV-C ++ zu migrieren, suchen Sie nach einer Implementierung, die in OpenCV selbst im Typ cv :: Mat enthalten ist, oder nach einer Implementierung, die eine äquivalente Verarbeitung mit OpenCV ausführt, und portieren Sie sie. Wird einfach gehen. Wenn Sie mit Scikit-Image testen, ob der Algorithmus ausreicht, um das Problem zu lösen, und das Problem beenden, werden die meisten Probleme gelöst. Schreiben Sie ihn daher in den Typ cv :: Mat Sollte dich nicht stören.
Der Vorteil der Verwendung von OpenCV-Python besteht darin, dass in OpenCV-Python geschriebene Algorithmen problemlos auf OpenCV-C ++ portiert werden können. Darüber hinaus können Sie sich auf die Verwendung und das Testen des Algorithmus konzentrieren, ohne die Details der Implementierung in OpenCV-Python zu kennen. Wenn Sie die Details des Algorithmus kennen möchten, können Sie sich die Bibliothek von OpenCV-Python ansehen und den C ++ - Quellcode lesen, um weitere Einzelheiten zu erfahren.
In beiden Fällen können Sie über die Python-Sprachoberfläche sehen, ob der Algorithmus für die beabsichtigte Verwendung verwendet werden kann. Sobald Sie dies überprüft haben, sollte das Umschreiben dieses Algorithmus in das OpenCV-C ++ - Framework Ihnen Vertrauen geben. (Oder suchen Sie nach einer Implementierung dieses Algorithmus in C ++)
Hinweis: Sowohl OpenCV-Python als auch Scikit-Image sind riesige Bibliotheken. Verstehen Sie bei diesem Vergleich nicht falsch, dass ○○ nicht △△ hat.
### ** Scikit-Image-Implementierungsansatz **
Im Fall von Scikit-Image die [Cython-Sprache](https://ja.wikipedia.org/wiki/Cython), die die Beschleunigung als typisierte Sprache unter Verwendung des Frameworks der Python-Sprache realisiert. Sie sind an der Reihe. Für diejenigen, die mit der Python-Sprache vertraut sind, wird es eine leicht verständliche Beschreibung des Algorithmus sein.
***
> ### ** Einführung in OpenCV **
> [Einführung in das OpenCV-Python-Tutorial](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) Beginnen wir mit OpenCV-Python
> [OpenCV-Python unter Windows installieren](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で使えるようにする。
> [OpenCV-Python auf Fedora installieren](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) Stellen Sie OpenCV in Fedora zur Verfügung.
### ** Offizielle Informationen zur Installation von 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)
### ** Hinweise zur Installation von scikit-image **
Auf dem Python-Interpreter
\>>> import skimage
Wenn Sie keine Fehler erhalten, wird scicit-image installiert.
Wenn Sie eine Fehlermeldung erhalten, installieren Sie diese.
Ich werde nur bei Windows fortfahren.
[Unofficial Windows Binaries for Python Extension Packages]
(http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-image)
Suchen Sie nach der kompilierten Binärdatei von scicit-image from.
Abhängig davon, ob die Version von Python (CPython) 2.7 oder 3.x ist
scikit_image‑0.11.3‑cp27‑none‑win32.whl
scikit_image‑0.11.3‑cp33‑none‑win32.whl
Wählen Sie oben die entsprechende Python-Version aus.
Abhängig davon, ob Python eine 32-Bit-Version oder eine 64-Bit-Version ist
scikit_image‑0.11.3‑cp27‑none‑win32.whl
scikit_image‑0.11.3‑cp27‑none‑win_amd64.whl
Wählen Sie entweder.
Selbst wenn die Betriebssystemversion die 64-Bit-Version ist, kann Python die 32-Bit-Version verwenden. (Wenn der einfachen Ausrichtung der Bibliothek Priorität eingeräumt wird, ist es besser, die 32-Bit-Version von Python und die 32-Bit-Version der Bibliothek auch unter einem 64-Bit-Betriebssystem zu verwenden.)
So installieren Sie eine Datei mit der Erweiterung whl über die Windows-Eingabeaufforderung
\> pip install file name.whl
Installieren.
Nach der Installation auf dem Python-Interpreter
\>>> import skimage
Wenn Sie keine Fehlermeldung erhalten, wissen Sie, dass scicit-image erfolgreich ist.
***
> ### ** GUI-Funktionen in OpenCV **
> [Beginnen wir mit der Bildbearbeitung](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)画像を読み込むこと、表示すること、保存することを学びます。
> [Starten wir den Videobetrieb](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) 動画の再生、カメラからの動画のキャプチャと動画としての保存を学びましょう。
> [OpenCV-Zeichenfunktionen](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)
Die Beispielskriptseite in Scikit-image-Beispielen enthält eine Download-Schaltfläche für das Skript. Drücken Sie diese Taste, um das Skript herunterzuladen, öffnen Sie es in einer Python-Umgebung wie Spyder oder IDLE und versuchen Sie, es auszuführen.
> [Verwenden Sie die Maus als Pinsel](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) マウスを使って塗りつぶし
> [Trackbar als Farbpalette verwenden](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を作る
***
> ### ** Kernoperation **
[Grundlegende Operation für Bilder](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)
Sie lernen, wie Sie Pixelwerte lesen und bearbeiten, im ROI (Region of Interest) von Bildern arbeiten und andere grundlegende Vorgänge ausführen.
Manchmal möchten Sie die gewünschte Verarbeitung nur für den ROI (Bereich von Interesse) des Bildes durchführen.
Zu diesem Zeitpunkt ist es wichtig, das Bild des interessierenden Bereichs nicht zu einer Kopie des Originalbilds zu machen, um ein effizientes Programm zu schreiben.
numpy.array ist ein Verweis auf einen Teil des ursprünglichen Arrays, keine Kopie, wenn ein Subarray erstellt wird.
Wenn die Unteranordnung neu geschrieben wird, wird die Änderung automatisch im Originalbild wiedergegeben.
Es gibt auch eine Möglichkeit, ein Subarray für den Typ cv :: Mat wie folgt anzugeben.
cv::Mat roi(img, Rect(10,10,100,100));
[Erläuterung der Grundstruktur von OpenCV](http://opencv.jp/opencv-2svn/cpp/basic_structures.html)
> [Arithmetische Operationen an Bildern](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)
Führt arithmetische Operationen am Bild aus.
![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)
> [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](http://docs.opencv.org/3.0-beta/_images/speed.jpg) 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](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で提供されている数学的手法のいくつかを学びます。
Anmerkung des Übersetzers:
PCA ist eine Methode, mit der unbekannte variable Komponenten und ihre Verhältnisse aus dem Phänomen ermittelt werden können, dass es viele variable Komponenten gibt. Angenommen, Sie haben eine große Anzahl gemischter Lösungen mit mehreren zusammengemischten Farbstoffen. Angenommen, die Mischung ist für jede Partie unterschiedlich. Angenommen, Sie haben eine Reihe von Spektren dieser gemischten Lösungen gemessen. Hier ist eine Frage. Wie viele Arten von Pigmenten werden gemischt? Welches Spektrum hat jeder der ursprünglichen Farbstoffe? Wie viel dieses Farbstoffs ist in jeder gemischten Lösung gemischt? Diese können durch eine mathematische Methode gelöst werden, die als Hauptkomponentenanalyse bezeichnet wird. Dies ist eine effektive Methode zur Analyse von Phänomenen mit mehreren variablen Faktoren.
SVD verfügt über viele Messdaten zur Bestimmung unbekannter Variablen, und es ist nicht möglich, unbekannte Zahlen durch Lösen gewöhnlicher simultaner Gleichungen zu erhalten. Eine solche Situation tritt tatsächlich häufig auf. Zu diesem Zeitpunkt ist SVD (Singular Value Decomposition) eine Methode zum Auffinden von Unbekannten unter Verwendung aller Daten. Diese Methode sollte anstelle der Minimum-Square-Methode zur Analyse experimenteller Daten verwendet werden. Referenzinformationen
・ [7.2 Minimale quadratische Lösung einer unmöglichen linearen Gleichung](http://www.chaos.cs.tsukuba.ac.jp/ILA/doc/chapter7.pdf)
- [Berechnung simultaner linearer Gleichungen unter Verwendung der Singularwertzerlegung](http://sssiii.seesaa.net/article/383104769.html)
・ "Computer Vision üben" S. 56 beschreibt, wie Gleichungen mit SVD gelöst werden.
Leider wurde der Link zu [Mathematische Methoden in OpenCV] noch nicht geschrieben.
***
> ### ** Bildverarbeitung mit OpenCV **
> [Farbraum ändern](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) 異なる色空間で画像を変換する方法を学びましょう。そして動画で色つきの物体を追跡させてみましょう。
> [Geometrische Transformation des Bildes](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)
> [Bildschwellenwertverarbeitung](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値化画像に変換してみましょう。
Hinweis: Das OpenCV-Python-Tutorial verwendet numpy, um zu erklären, wie die Binarisierung von Otsu funktioniert. Wenn Sie nur zeigen möchten, dass die Binärisierung von Otsu in OpenCV-C ++ auch in OpenCV-Python verwendet werden kann, ist dies nicht erforderlich, erklärt jedoch die Binärisierung von Otsu mit Numpy und reichlich Servicegeist. .. Die Schwellwertfunktion () in C ++ ändert ihr Verhalten je nach Argument auf komplizierte Weise, sodass es schwierig zu sein scheint, den Algorithmus zu lesen.
Was im Binarisierungsprozess der optimale Binarisierungsprozess ist, hängt vom Inhalt des Zielprozesses und der Art der Eingabedaten ab. Bei einer dynamischen Binärisierungsverarbeitung wie der Binärisierung von Otsu wird die Binärisierung erzwungen. Wenn Sie also eine Eingabe mit der Bezeichnung "kein zutreffender Bereich" eingeben, ist dies möglicherweise nicht das erwartete Verhalten Vielleicht.
![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)
> [Bildglättung](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) 画像をぼかしたり、あつらえたカーネルを用いた画像にフィルタすることを学びます。
> [Morphologische Konvertierung](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) Erfahren Sie mehr über morphologische Transformationen wie Kontraktion, Expansion, Öffnen und Schließen.
![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)
> [Bildverlauf](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)
Finden Sie Bildverläufe, Kanten und mehr.
![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)
> [Canny Edge Detection](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)
Canny-Kantendetektoren werden häufig verwendet, wenn eine Genauigkeit der Kantenposition erforderlich ist. Die folgenden Materialien erklären gut.
[Optimaler Kantendetektor (Advanced Computer Vision, Wakayama University)](http://www.wakayama-u.ac.jp/~wuhy/CV05.pdf)
> [Bildpyramide](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)
> [Gliederungsverarbeitung mit 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にある輪郭処理の全て。
> #### ** Konturieren mit OpenCV **
> [Gliederung: Los geht's](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)
Finde den Umriss und zeichne
> [Gliederungsfunktionen](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) Erfahren Sie, wie Sie verschiedene Konturmerkmale, Bereiche, Perimeter, umschreibende Rechtecke usw. finden.
Hinweis: cv2.findContours () hat Nebenwirkungen. Das als cv2.findContours angegebene Binärbild (Thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) schreibt den Wert von Thresh neu. Wenn Sie nicht umgeschrieben werden möchten, ist es eine gute Idee, eine Kopie zu erstellen und eine Kopie zu geben.
Das gedrehte Rechteck ist ein umschreibendes Rechteck, das näher an der Konturform liegt.
> [Kontureigenschaften](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) Erfahren Sie, wie Sie verschiedene Kontureigenschaften, Festigkeit, durchschnittliche Festigkeit und mehr finden.
> [Gliederung: Andere Funktionen](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)
Erfahren Sie, wie Sie Konvexitätsfehler finden, Polygontests zeigen und verschiedene Formen anpassen.
> [Konturhierarchie](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)
Erfahren Sie mehr über die Hierarchie der Konturen.
![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 in 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-isthist)
![histogram.png](https://qiita-image-store.s3.amazonaws.com/0/83761/a7d76636-fa36-3ea5-93ab-8afecb91d1ef.png) OpenCVにあるヒストグラムの全て。
> #### OpenCV OpenCV-Histogramm
[Histogramme-1: Finden, zeichnen und analysieren! !! !! ](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) Suchen Sie das Histogramm und zeichnen Sie es.
> [Histogramme-2: Abflachen des Histogramms](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) Lernen Sie, das Histogramm zu reduzieren, um ein gutes Kontrastbild zu erhalten.
> [Histogramme --3: Zweidimensionales Histogramm](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) Erfahren Sie, wie Sie ein zweidimensionales Histogramm finden und zeichnen.
> [Histogramm-4: Rückprojektion des Histogramms](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) Erfahren Sie, wie Sie ein Histogramm auf ein bereichsfarbenes Objekt zurückprojizieren.
Hinweis: Wenn Sie im verknüpften OpenCV-Python-Tutorial-Beispiel einen Teil der Rasenfläche aus einem Fußballbild angeben, basiert die entsprechende Farbe aus dem gesamten Bild auf einem Teil des Histogramms dieses Bildes. Es wurde entwickelt, um den Bereich von zurück zu projizieren.
![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)
> [Bildkonvertierung mit 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にある様々な画像変換に出会ってみましょう。
> [Template Matching](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)
Hinweis: Der OpenCV-Python-Beispielcode für den Vorlagenabgleich zeigt verschiedene Vorlagenabgleichstechniken, zeigt jedoch, dass einige Techniken etwas anderes als den Zielbereich treffen. Die Güte der Technik hängt von der Art des Bildes ab, das für den Vorlagenabgleich verwendet wird. In einer Welt, in der Bedingungen wie Bildverarbeitung gesteuert werden, können einfache Algorithmen mit geringem Rechenaufwand effektiv sein.
> [Huff-Zeilenkonvertierung](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)
> [Huff Yen Conversion](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)
> [Flächenteilung von Bildern basierend auf dem Watershed-Algorithmus](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) Teilen wir den Bildbereich mithilfe des Watershed-Algorithmus.
![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)
> [Interaktive Vordergrundextraktion mit GrabCut-Algorithmus](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) Extrahieren wir den Vordergrund mit dem GrabCut-Algorithmus.
***
> ### ** Funktionserkennung und Funktionsbeschreibung **
[Grundlegendes zu den Funktionen](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) その画像の主な特徴はなんだろうか? 見つけられたこれらの特徴はどのように役に立つのか?
> [Harris Corner Detection](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)
> [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](http://docs.opencv.org/3.0-beta/_images/shi_icon.jpg)
Werfen wir einen Blick auf die Details der Shi-Tomasi-Eckenerkennung.
> [Einführung in die SIFT-Funktion (Scale-Invariant Feature Transform)](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特徴量と呼ばれています。
> [Einführung in die SURF-Funktionen (Speeded-Up Robust Features)](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特徴量と呼ばれる高速化版が作られました。
> [SCHNELLER Algorithmus zur Eckenerkennung](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(速い)"です。
> [KURZE unabhängige Elementarfunktionen](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個の浮動小数点からなる特徴記述子を用いています。そのような特徴量を数千個あつかうことを考えてごらんなさい。そのときたくさんのメモリーとマッチングのためにたくさんの時間を使
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.
![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)
> [ORB-Funktionen (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)
Hinweis: Der Gabor-Filter "[Es wurde gezeigt, dass der 2D-Gabor-Filter die Aktivität einfacher Zellen im frühen Gesichtsfeld modellieren kann](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.
Hinweis: Beim Abgleichen von Features ist es auch ein wichtiger Faktor, wie viele Feature-Punkte aus dem Originalbild generiert werden. Selbst wenn die Merkmalsmenge weniger von der Skalierung, dem Drehwinkel und dem Betrachtungswinkel im dreidimensionalen Raum abhängt und eine stabile Anpassung ermöglicht, ist sie nutzlos, wenn die Anzahl der erzeugten Merkmalspunkte zu gering ist. Dies hängt von der beabsichtigten Verwendung und der Art der Eingabebildgruppe ab. Ich denke, der Reiz des Verarbeitungssystems, einschließlich Bibliotheken wie OpenCV-Python und Scicit-Image, besteht darin, dass Sie problemlos eine große Anzahl von Funktionen ausprobieren können. ..
> [Feature Quantity Matching](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に基づくマッチング手法です。
> [Feature-Matching und Homografie zum Finden von Objekten](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)
***
> ### ** Videoanalyse **
> [Meanshift- und Camshift-Tracking](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が対象をどう見つけ追跡するのか見てみましょう。
> [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](http://docs.opencv.org/3.0-beta/_images/opticalflow.jpeg) 重要な概念、オプティカルフローについて学びましょう。それは動画に関連していて、たくさんの用途があります。
> [Entfernen des Hintergrunds](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) いくつかのアプリケーションでは、物体追跡のように前景を抜き出す必要があります。背景除去は、それらの場合に役立つよく知られた手法です。
***
> ### ** Kamerakalibrierung und 3D-Rekonstruktion **
> [Kamerakalibrierung](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) 利用しているカメラがどれだけ良いものか試してみましょう。それで撮影した画像に歪みが見られるでしょうか?もしあれば、どう補正しましょうか?
> [Einstellungsschätzung](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効果を作るのに役立つ短いセッションです。
> [Epipolare Geometrie](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) エピポーラ幾何とエピポーラ制約を理解しましょう。
> [Informationen zur Tiefenentfernung vom Stereobild](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画像群から奥行き情報を得ます。
***
> ### ** Maschinelles Lernen **
> [K-Nearest Neighbor Method](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の考え方を理解します
> [K durchschnittliche Methode](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)
> Lernen Sie, Daten mithilfe der K-Mittelungsmethode in Gruppen von Clustern zu klassifizieren. 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](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)
> [Bildreparatur](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)
Das Schnitzen von Nähten ist ein Versuch, das Seitenverhältnis zu reduzieren, ohne Verzerrungen hinzuzufügen, indem weniger wichtige Bildbereiche entfernt werden.
***
> ### ** Objekterkennung **
[Gesichtserkennung mit dem Haar-Kaskadendetektor](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 カスケード検出器を用いた顔検出
Auf dem Gebiet der Objekterkennung bietet das Scikit-Bild HOG-Funktionen, die als typische Methode zur Erkennung von Menschen verwendet werden.
![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)
Verwenden Sie diese Bibliothek, um payashim ["Erkennen von Personen, die mit scikit-learn und scikit-image erstellt wurden"](https://github.com/payashim/python_visual_recognition_tutorials)
Ist für die Öffentlichkeit zugänglich.
***
> ### ** OpenCV-Python-Bindung **
Lassen Sie uns nun lernen, wie OpenCV-Python-Bindungen hergestellt werden.
> [Wie funktioniert die OpenCV-Python-Bindung? ](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) Wie wird Scikit-Image implementiert? Bist du **
Während OpenCV in C ++ implementiert ist, ist Scikit-Image in der Python-Sprache und der Python-basierten Cython-Sprache geschrieben.
In einer dynamisch typisierten Sprache ist die Programmausführungsgeschwindigkeit langsamer als in einer dynamisch typisierten Sprache zur Verarbeitung zur Bestimmung des Typs. In einer Sprache, die den Bereich der Indizes beim Zugriff auf ein Element eines Arrays überprüft, ist die Ausführungsgeschwindigkeit aus Sicherheitsgründen tendenziell langsam. Daher ist es besser, den Prozess mit einer Funktion / Methode zu beschreiben, die das Array gemeinsam verarbeitet, als mit der Beschreibung, die den Bereich der Indizes überprüfen muss.
[Das explizite Schreiben einer Schleife mit numpy ist extrem langsam](http://qiita.com/nonbiri15/items/ef97b84832055ab807fb)
Ist eine Beschreibung der Umstände dazu.
Basierend auf der Python-basierten Syntax versucht die Cython-Sprache daher, die explizite Typspezifikation zu vereinfachen und den Bereich der Indizes beim Schreiben einer Schleife zu überprüfen. .. Ob cv :: Mat oder numpy, die Idee ist ähnlich, so dass es einfach ist, von einem zum anderen zu wechseln. Der folgende Artikel wurde von jemandem geschrieben, der die Cython-Sprache lernt.
[Scikit-Bild verstehen (Cython-Beispiel)](http://qiita.com/nonbiri15/items/1011eb9e658c53025e5e)
[Scikit-Bild 2 verstehen (Cython-Beispiel)](http://qiita.com/nonbiri15/items/d3643721d351eb908337)
"Cython beschleunigt Python durch Fusion mit C" (http://www.oreilly.co.jp/books/9784873117270/)
***
Eine Bibliothek, die nicht direkt mit "OpenCV-Python Tutorials" verknüpft werden konnte.
![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)
Oben wurden Informationen zum Vergleich mit scicit-image zu einigen japanischen Übersetzungen von OpenCV-Python-Tutorials hinzugefügt.
Recommended Posts