Für 2D ist der Sobel Operator die bekannte 3x3 Matrix. Was ich mich nun frage, da ich nur mit 1D Signalen zu tun habe: Kann man den Sobel Operator auch auf ein 1D Signal anwenden und wenn ja, wie sieht der Sobel Operator dann für 1D Signale genau aus? Einfach die 3x3 Matrix zeilenweise anwenden oder übersehe ich da etwas? Kann jemand vielleicht ein Beispiel geben?
Was genau willst Du denn machen? Der Sobel-Operator wird üblicherweise zur Kantendetektierung in Bilddateien verwendet.
Das wäre die Vorschrift für eine Kante im Mittelpunkt M und den Nachbarn L sowie R: (1 0 -1) also praktisch L-R und das gfs betragsmässig interpretiert.
Kantenerkenner schrieb: > Das wäre die Vorschrift für eine Kante im Mittelpunkt M und den > Nachbarn > L sowie R: > > (1 0 -1) also praktisch L-R und das gfs betragsmässig interpretiert. Ich versuche mal ein Beispiel. Ist folgendes korrekt? x = [0 0 0 1 1 1] (1*0)+(0*0)+(-1*0) = 0 (1*0)+(0*0)+(-1*1) = -1 (1*0)+(0*1)+(-1*1) = -1 (1*1)+(0*1)+(-1*1) = 0 y = [0 -1 -1 0] Nun hat der Sobel Operator aber die Faktoren (+/-) 1,2,1. Ich meine mal gelesen zu haben, dass dies eine zusätzliche Glättung bewirkt. Wäre das dann einfach (1 2 1 0 -1 -2 -1)?
Homer schrieb: > Ich versuche mal ein Beispiel. Ist folgendes korrekt? > > x = [0 0 0 1 1 1] > > (1*0)+(0*0)+(-1*0) = 0 > (1*0)+(0*0)+(-1*1) = -1 > (1*0)+(0*1)+(-1*1) = -1 > (1*1)+(0*1)+(-1*1) = 0 > > y = [0 -1 -1 0] Wenn ich das noch halbwegs richtig im Kopf habe: Führt man eine lineare Faltung eines Signalvektors mit M Elementen mit einem solchen mit N Elementen durch, dann hat das Ergebnis M + N - 1 Elemente. Hier wären das demnach: 6 + 3 - 1 = 8 da x hier sechs Elemente enthält und das anzuwendende Filter drei. Demnach sollte der Vektor y acht Elemente enthalten. Oder aber ich irre mich - die Vorlesung ist schon verdammt lange her ;-)
:
Bearbeitet durch User
Er hat die Ränder weggelassen. Rauskommen würde: U U 0 -1 -1 0 U U weil ja für die Randwerte keine Eingangswerte zur Verfügung stehen. Man kann die Detaktion auf über ein Pixel machen, also 1 -1 0 Dann ist das Ergebnis aber versetzt.
rme schrieb: > Hier ein Beispiel, wie man sich solche Überlegungen selbst herleitet. Magst Du uns das Buch nennen, aus dem dieser Text ist? Bitte? :-)
Das ist aus meiner Bachelor-Arbeit :) Die unterliegt leider einem Sperrvermerk, deshalb musste ich einige Begriffe streichen und kann sie nicht im Ganzen veröffentlichen.
rme schrieb: > Das ist aus meiner Bachelor-Arbeit :) Die unterliegt leider einem > Sperrvermerk, deshalb musste ich einige Begriffe streichen und kann sie > nicht im Ganzen veröffentlichen. Jäh05 -> "Digital Image Processing" von Bernd Jähne oder?
Genau, damals (ist 3 Jahre her) in dieser Variante: Bernd Jähne. Digitale Bildverarbeitung. 5. Auflage. Springer, 2005.
rme schrieb: > Genau, damals (ist 3 Jahre her) in dieser Variante: > > Bernd Jähne. Digitale Bildverarbeitung. 5. Auflage. Springer, 2005. Kannst du noch andere Literatur zu dem Thema empfehlen?
Einige Paper und Arbeiten der Erfinder sind frei verfügbar und geben schöne Einblicke, z.B.: * J. Canny. „A Computational Approach to Edge Detection“ * Hanno Scharr. „Optimale Operatoren in der Digitalen Bildverarbeitung“
Sobel und andere sind SO! nur in einem absolut bereinigten und idealen Bild sicher anwendbar. Für die meisten praktischen Fälle muss ein Bild (und auch das hier geforderte eindimensionale Signal) meistens vorbereitet werden oder Korrekturen und z.B. Rauschfilterung müssen im Filter implementiert sein. Dazu muss man den Vektor entsprechend aufziehen und die geforderten Frequenzen einbeschreiben.
Jürgen S. schrieb: > Sobel und andere sind SO! nur in einem absolut bereinigten und > idealen > Bild sicher anwendbar. Für die meisten praktischen Fälle muss ein Bild > (und auch das hier geforderte eindimensionale Signal) meistens > vorbereitet werden oder Korrekturen und z.B. Rauschfilterung müssen im > Filter implementiert sein. Das ist klar, also z.B. Canny. Wollte nur die reine Kantenerkennung auf 1D übertragen verstehen, nicht das Canny "Komplettpaket" :-) @rme Danke für die Tipps!
Das Gesagte mit der Fehlerunterdrückung gilt auch für den 1D-Fall. Siehe "Sprungerkennung".
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.