0

Ich bin neu in der Bildverarbeitung und hoffe, jemand kann helfen/führen Sie mich in die richtige Richtung.Finden Sie Eckkoordinaten im Bild mit openCV

Also ich habe ein Bild in schwarz/weiß und ich möchte die Eckkoordinaten des inneren schwarzen Teils der preprocessed picture finden. Meine Frage ist, welche Art von Methoden das genaueste Ergebnis liefern wird?

Ich mag so etwas wie this (rote Punkte zeigt die inneren Ecken)

+0

Welches der vielen Ergebnisse google wirft Sie auf "opencv corner detection" haben Sie versucht und warum erfüllt es nicht Ihre Bedürfnisse? – Piglet

+0

Erwähnen Sie, was Sie versucht haben. –

+0

Probieren Sie den Eckdetektor ['cornerHarris()'] (http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_features_harris/py_features_harris.html) aus. –

Antwort

0

gehen Sie mit cv::goodFeaturesToTrack() und spielen mit Params, bis Sie Ihr Ergebnis erhalten.

Sie auf diese beziehen können, warum diese wählen und nicht cornerHarris: goodFeaturesToTrack vs cornerHarris

und auch diese SO für ein Beispiel beantworten: opencv-using-cvgoodfeaturestotrack-with-c-mat-variable

natürlich ich nehme an, Sie sind mit C++, wenn Sie mit python es nicht viel ändern wird ...

Glück haben und versuchen, eine Suche zu tun, bevor das nächste Mal

+0

Danke für eine gute Antwort, das hat perfekt funktioniert! Ich werde versuchen, das nächste Mal eine bessere Suche zu machen – hfalk

0

Ich weiß nicht, welche Sprache Sie verwenden, die es schwerer zu beantworten diese Frage, aber die Art und Weise macht habe ich es mein letztes Mal war, durch Anwendung von openCV canny edge detection algorithm. Dies ermöglicht Ihnen, die Kanten auf dem Bild zu sehen. Nächste find the contours. Mit diesen beiden Funktionen und ein wenig Hilfe von Ihrem Freund Google können Sie das herausfinden. Viel Glück!

0

einer der aproaches wäre zu verwenden nur Sobel unabhängig in X und Y (in Original-ima fragen ge). Da du binär bin, findest du schon innere Kanten, was einfach sein wird.

Diese Kanten können dann abgetastet werden - nehmen Sie ein paar Punkte von der Kante. Und mit Hilfe von OpenCV Bibliotheksfunktion cv::fitLine finden Sie die Linie der Kante. Mach dasselbe mit allen inneren Kanten und berechne die Schnittpunkte. Dieser Ansatz sollte ziemlich genau sein, da Sie von der fitLine-Funktion im Grunde die Ecken subpixelgenau berechnen.