2012-04-03 10 views
1

Ich möchte OpenCV-Funktionen, wie Hough Transformation und Corner Detection, in Sikuli verwenden.Wie man Python OpenCV-Funktionen in Sikuli verwendet

Ich habe versucht, die OpenCV-Installationsanweisungen für CPython auf Sikuli und es ist ein Nein.

Ich verstehe, dass Sikuli Jython ist und dies könnte der harte Weg sein, Dinge zu tun. Was sind die leichteren Alternativen?

Ich würde immer noch gerne Sikuli & Python verwenden, weil der Code, den ich schreibe, einfach funktioniert; aber vielleicht stoße ich an die Grenzen von Sikuli.

+0

Wenn das eigentliche Problem an die Grenzen der Region Anpassung innerhalb Sikuli betrifft, möchten Sie vielleicht Ihre Fragen umformulieren das eigentliche Problem zu erklären, die Sie haben. Der Versuch, OpenCV zu integrieren, ist möglicherweise übertrieben. Ein weiterer Ratschlag ist, um sicherzustellen, dass Sie die aktuellste Version von Sikuli verwenden, da die Bildanpassung Code verbessert hat enorm sowohl in Robustheit und Leistung über die letzten paar Releases. –

Antwort

4

Sie könnten Automa als Alternative zu Sikuli verwenden. Es ist eine reine Python-Bibliothek (so dass Sie jede andere Python-Bibliothek damit verwenden können) und seine Bildersuchalgorithmen sind . Tatsächlich verwendet es die Python-Bindungen von OpenCV selbst und wird daher mit ihnen ausgeliefert.

Haftungsausschluss: Ich bin einer von Automas Entwicklern.

2

Allgemein gesprochen: Python Module C-basierter Code enthält (was der Fall für Python OpenCV ist) kann nicht in dem Sikuli Script (Jython) verwendet werden.

Die Integration einiger OpenCV-Funktionen in Sikuli erfolgt über die Java-To-C-Schnittstelle (JNI) und die Verwendung von OpenCV-Funktionen selbst ist in C++ codiert.

Wenn Sie OpenCV-Funktionen verwenden möchten, die nicht von Sikuli unterstützt werden, müssen Sie entweder den oben genannten JNI-Ansatz verwenden oder Java implementation of OpenCV (javacv) verwenden (Java-Zeug kann nahtlos aus Jython-Skripten verwendet werden).

Eine weitere Möglichkeit besteht natürlich darin, die zusätzlichen Dinge in einfachen Python-Skripten mit Python/OpenCV zu implementieren und diese Skripte über den C-Python-Interpreter in einem Subprozess aufzurufen.

Verwandte Themen