Holen Sie sich mit OpenCV ein Histogramm der Kantenlängen / -ausrichtungen in einem Bild

7

Bei dem Versuch zu schätzen, ob ein ROI [japanischen] Text enthält, muss ich eine grobe Anzahl von Kanten erhalten, die hoffentlich nach Länge und / oder Ausrichtung gruppiert sind. Ich denke, dies würde mir ausreichend starke Funktionen geben, um zu beurteilen, ob Der ROI enthält wahrscheinlich Text oder nicht.

Ich kann jedoch anscheinend keinen effizienten Weg finden (dies muss schließlich bei einem Videostream funktionieren), um ein solches Histogramm zu erhalten (oder sogar nur eine Anzahl von Kanten für bestimmte Längen- / Orientierungsschwellen): Hough-Transformationen tendieren dazu Konzentrieren Sie sich auf bestimmte Formen (Linien usw.), während Canny und Sobel jeden Typ erkennen, aber ihre Ausgabe ist nicht besonders nützlich zum Zählen ...

Ich würde mich über jeden Vorschlag oder Hinweis auf einen Algorithmus freuen, den ich verwenden kann, um schnell eine Liste von Kanten aus einem Bild zu extrahieren ...

Dave
quelle

Antworten:

3

Ich weiß nicht, ob OpenCV eine Implementierung hat - aber ich kann Ihnen dafür einen Algorithmuszeiger geben.

MPEG 7 bietet einen ziemlich gut definierten (und gut durchdachten) Kantenhistogramm-Deskriptor [EHD], der im Wesentlichen Ihrem Zweck dient.

Sie können sich darauf beziehen: Effiziente Verwendung des MPEG-7-Kantenhistogrammdeskriptors, der meiner Meinung nach ein ausgezeichnetes Papier dazu ist.

Wenn Sie eine Implementierung von MPEG-7 sehen möchten, finden Sie diese auf der Seite JOANNEUM RESEARCH MPEG 7 .

Weitere Informationen zu MPEG-7: Liste möglicher Bildfunktionen für den inhaltsbasierten Bildabruf

Dipan Mehta
quelle
Danke für die Antwort. Obwohl es nicht ganz das ist, was ich brauche (der MPEG7-Algorithmus gibt nur Randfächer für kleine Bereiche des Bildschirms an, da er auf einer ziemlich einfachen Unterteilung jedes Bereichs basiert), ist es nah genug, also werde ich es akzeptieren. .
Dave
Im Übrigen stellte sich heraus, dass der genaue Algorithmus (mit mehr Details als in den obigen Abhandlungen) auf SO beschrieben wurde: stackoverflow.com/questions/909542/opencv-edge-extraction
Dave