+1 Daumen
1,2k Aufrufe

Aufgabe:

Drehung einer Matrix3x3 um den Punkt M22.

Bsp: Sobel-Filter-Matrix :

\( \begin{pmatrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2  &-1\end{pmatrix} \)

Die wenn die Matrix nun 45° gedreht wird kommt folgendes raus

\( \begin{pmatrix} 0 & 1 & 2 \\ -1 & 0 & 1 \\ -2  & -1 & 0\end{pmatrix} \)

das wäre kein problem aber wenn ich zu 22,5° komme wird das ganze für mich schon komplizierter,

denn nun müsste ich M11 auf M11 und M12 aufteil, in dem Beispiel mit 22,5° wäre das 50% für M11 und 50% für M12

Problem/Ansatz:

Mein Ansatz lag darin die Funktion zur Vektor-Rotaion( x = xcos(A) - ysin(A) und y = xsin(A) + cos(A)) ein wenig abzu ändern um damit meine Werd + Positionen bestimmen zu können.
Im Bild drunter hab ich versuch die Funktion zu Bastel ohne erfolg ...
Unbenann5t.PNG

In meiner vorstellung sollten die Punkte (Spitzen die nicht auf den Achsen liegen) jeweils auf (1, 1), (-1, 1) , (-1, -1) und (1, -1) liegen ...

Das war mein ansatz.

Meine zweite Idee wäre direkte Matrix Transformation und Rotation, aber davon hab ich keine Ahnung :(

Avatar von

Fragen:

Drehung einer Matrix3x3 ? Was soll das werden?

M22 ?

M11 ?

M12 ?

Du bist offensichtlich im R², beschreibt Deine Matrix eine Drehung in homogenen Koordinaten?

Vielleicht fängst Du vorne an, mit deiner Problembeschreibung?

Okay, ich hab den Solbel filter (Kanten erkennung in Bildern)

\( \begin{pmatrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2  &-1\end{pmatrix} \)

in der Form funktioniert er nur von oben nach unten und von hell nach dunkel.

Meine iIdee war es nun das ich den sobel filter frei drehen möchte, also das er auch von unten links nach oben rechts funktioniert bzw das ganze invertiert.


dabei dreh ich die Matrix um den Punkt M22
\( \begin{pmatrix} M11 & M12 & M13 \\ M21 & [M22] & M13 \\ M31 & M32 & M33 \end{pmatrix}\)


Macht das jetzt sind und was ich versuch Oo ... ich bin echt schlecht im erklären -.- tut mir leid :W

M22 ist eine Zahl, kein Punkt.

Dann wäre zu klären wie man eine Matrix um einen Winkel dreht - ist mir in der Mathematik noch nicht untergekommen...

Dann würde ich mal sagen, muss ich was entwickeln :/

aber wenn ich das Problem mal in einen anderen Bereich übertrage:
Wie dreh ich ein Bild um den Mittelpunkt, denn ich glaub das ist nichts anderes nur viel kleiner.

Dabei bleibt der Pixel in der Mitte auch fixiert.

Drehungen sind Abbildungen: Bezug auf Deine Daten

f : R² -> R²

Eine Rotation um 45° im Urzeigersinn um einen Punkt, sagen wir M(2,2)

in homogenen Koordinaten (HK)

\(\small R(a ) \, :=  \, \left(\begin{array}{rrr}\operatorname{cos} \left( a \right)&-\operatorname{sin} \left( a \right)&0\\\operatorname{sin} \left( a \right)&\operatorname{cos} \left( a \right)&0\\0&0&1\\\end{array}\right)\)

Eine Rotation um M ist eine Verschiebung von M in den Ursprung dann die Rotation -45° und eine Rückverschiebung:

\(\small\left(\begin{array}{rrr}1&0&2\\0&1&2\\0&0&1\\\end{array}\right)   \left(\begin{array}{rrr}\frac{1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&0\\\frac{-1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&0\\0&0&1\\\end{array}\right)  \left(\begin{array}{rrr}1&0&-2\\0&1&-2\\0&0&1\\\end{array}\right) \)

macht eine Abbildungsmatrix von

\(\small R:=\left(\begin{array}{rrr}\frac{1}{2} \; \sqrt{2}&\frac{-1}{2} \; \sqrt{2}&2\\\frac{1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&-2 \; \sqrt{2} + 2\\0&0&1\\\end{array}\right)\)

Damit landet ein Punkt A (-1,2) -> AHKT =(-1,2,1)

\(\small R\; A_{HK} =  \, \left( \begin{array}{rrr}-0.12 \\ 4.12 \\ 1 \end{array} \right) \to A'= \, \left( \begin{array}{rr}-0.12 \\ 4.12  \end{array} \right)\)

also bis zur Rotations-Matrix komm ich mit aber wie kommt man auf

\(A'= \, \left( \begin{array}{rr}-0.12 \\ 4.12  \end{array} \right)\)

Kein plan wie man im Kommentar ein Bild einbettet: https://imgur.com/a/gTWj7mF

https://imgur.com/a/gTWj7mF

Bild: Copy & Paste oder Datei rein ziehen...(unter dem Eingabefeld: Grafik hochladen)

Du hast den Winkel 45° eingesetzt (Drehung gegen den Urzeigersinn)

meine Matrix dreht im Uhrzeigersinn -45° ...

Rein optisch sollest Du den Punkt als Spaltenvektor antragen, sonst musst Du in Formel auch Transponieren...

Schau Dir mal GeoGebra an. z.B. https://www.geogebra.org/m/wurp6jf2

Geht das in Deine Richtung, dann mach ich eine Antwort daraus?

ich glaub mein kommentar mit dem Bild hat die Seite etwas kaputt gemacht. (bzw. bei mir ist die Kommentar box komisch) ...

Ja, jetzt muss ich es nur noch auf mein Prblem übertragen.
Und ich hab verstanden wie ich das Produkt aus Matrizen bilde.

1 Antwort

0 Daumen
 
Beste Antwort

Drehungen sind Abbildungen: Bezug auf Deine Daten

f : R² -> R²

Eine Rotation um 45° im Urzeigersinn um einen Punkt, sagen wir M(2,2)

in homogenen Koordinaten (HK)

\(\small R(a ) \, :=  \, \left(\begin{array}{rrr}\operatorname{cos} \left( a \right)&-\operatorname{sin} \left( a \right)&0\\\operatorname{sin} \left( a \right)&\operatorname{cos} \left( a \right)&0\\0&0&1\\\end{array}\right)\)

Eine Rotation um M ist eine Verschiebung von M in den Ursprung dann die Rotation -45° und eine Rückverschiebung:

\(\small\left(\begin{array}{rrr}1&0&2\\0&1&2\\0&0&1\\\end{array}\right)  \left(\begin{array}{rrr}\frac{1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&0\\\frac{-1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&0\\0&0&1\\\end{array}\right)  \left(\begin{array}{rrr}1&0&-2\\0&1&-2\\0&0&1\\\end{array}\right) \)

macht eine Abbildungsmatrix von

\(\small R:=\left(\begin{array}{rrr}\frac{1}{2} \; \sqrt{2}&\frac{-1}{2} \; \sqrt{2}&2\\\frac{1}{2} \; \sqrt{2}&\frac{1}{2} \; \sqrt{2}&-2 \; \sqrt{2} + 2\\0&0&1\\\end{array}\right)\)

Damit landet ein Punkt A (-1,2) -> AHKT =(-1,2,1)

\(\small R\; A_{HK} =  \, \left( \begin{array}{rrr}-0.12 \\ 4.12 \\ 1 \end{array} \right) \to A'= \, \left( \begin{array}{rr}-0.12 \\ 4.12  \end{array} \right)\)


---

Kannst Du Deinen Kommentar bearbeiten?Aber da ist nix kaputt - alles gut....

und vielleicht für Dein Fach

https://www.cg.tuwien.ac.at/courses/CG1/textblaetter/02%20Geometrische%20Transformationen.pdf

Achtung: Beim Rückkonvertieren von HK in Kartesische Ko muß durch die z-Koordinate dividiert werden, das hab ich in der App weggelassen, da da immer 1 entsteht!

Avatar von 21 k

gibt es noch mehr von den Textbl(a/ä)tt(ern)?


Und danke für die Hilfe bis hier her!

Ich muss in zwei Kamera-Bildern eine bestimmte "Kurve" herausfiltern. Die Kurven interpolieren und vergleichen.

Die Kurve zeichnet sich daran aus, das sie von einem dunklen Bereich in einen hellen Bereich übergeht und dann wieder Dunkel wird.
Mit dunkel meine ich den Hindergrund, also nicht Schwarz und weiß oder ähnlich.

Um die "Kurve" besser zu finden nutz ich den Sobel-Filter aber der geht in der "basis" variante einmal nur von Oben-nach-Unten und von Links-nach-Rechts aber eine Filter-Matrix kann auch gedreht werden.

Meine Aufgabe ist eine bestimme "Kurve" in einem Kamera-Bild zu erkennen.

hm,

ich hab den wiki artikel zum sobel faktor überflogen. die anwendung kenn ich von gimp her.

mal ganz naiv gefragt wäre es net einfacher das bild zu drehen und mit dem standardverfahren drüber zu gehen ;-?

vielleicht guckst du mal

https://www.geogebra.org/m/f2t62ad9

durch und bearbeitest deine faltungsmatrix mit einer givens/jacobi rotation - die akk, aik terme können ja auf winkelfunktionen zurückgeführt werden. würde mich interessieren was dabei rum kommt, wenn du das als sinnvoll erachtest....

Da muss ich mich kurz einarbeiten (könnte ein wenig dauern) ... ich schau mir das mal an!

Zum Bild drehen: Worin liegt der unterschied ob ich mein Bild oder meine Filter-Matrix drehe, sollte beides das gleiche sein nur das es in der Matrix minimalisiert ist auf 8 Werte (Den Wert M22 weggelassen).

Naja, war, wie gesagt, eine naive Frage ....

Wenn ich auf den Winkel zurückbaue sähe eine Givens/Jacobi-Rotation aus wie

\(\small G_T(1,3,3) = \left(\begin{array}{rrr}\operatorname{cos} \left( \theta \right)&0&-\operatorname{sin} \left( \theta \right)\\0&1&0\\\operatorname{sin} \left( \theta \right)&0&\operatorname{cos} \left( \theta \right)\\\end{array}\right)\)

(oder die sin mit getauschem Minus)

Substitute( G_T(1,3,3) {{1,2,1},{0,0,0},{-1,-2,-1}} ,θ=45°)

= \(\small \left(\begin{array}{rrr}\sqrt{2}&2 \; \sqrt{2}&\sqrt{2}\\0&0&0\\0&0&0\\\end{array}\right)\)

Substitute( G_T(1,3,3) {{1,2,1},{0,0,0},{-1,-2,-1}} ,θ=15°)

= \(\small \left(\begin{array}{rrr}\frac{1}{2} \; \sqrt{6}&\sqrt{6}&\frac{1}{2} \; \sqrt{6}\\0&0&0\\\frac{-1}{2} \; \sqrt{2}&-\sqrt{2}&\frac{-1}{2} \; \sqrt{2}\\\end{array}\right)\)

Wir kommen der sache näher.

Ich hab mal ein Beispiel anhand der Winkel gemacht.

https://www.geogebra.org/m/vkv6cwzt

Update: Ich hab weiter rum gespielt und bin zu 98% an meiner lösung, zwar ist es nun nicht mit einer Rotations-Matrix aber sowas ähnlichen.

https://www.geogebra.org/calculator/gewmhweq

Jetzt muss ich nur noch die Vorzeichen fixen und dann sollte es gehen :D

Ich muss nochmal updaten :D kp, aber kollege meinte, die Matrix komisch ausshieht ...
Naja hier ist die neu :D jetzt muss ich nur noch die vorzeichen fixen :D


https://www.geogebra.org/calculator/hnqmr5pr

So und hier ist die Lösung: https://www.geogebra.org/m/qjeftzuk

Ob man das noch vereinfachen kann? Bestimmt :D

Aha, schön das Du's hinbekommen hast,

auf die exakte Grundform (A=0) kommst Du aber nicht mehr?

Ich würde auch ehr von einer Verteilung sprechen, denn von einer Rotation....

Nein, leider nicht aber 0.08 geht schon als abweichung.

Ich bedanke mich für deine Unterstützung :D


Ich will nochmal nen Update geben :D

End-Formel: f(x) = 2(cos(x) - sin(x))
Besser als:   f(x) = cos(x) - sin(x) - cos(x + 90°) + sin(x + 90°)
denn cos(x + 90°) <=> sin(x) => f(x) = cos(x) - sin(x) - sin(x) + cos(x)
                                                         = 2cos(x) - 2sin(x)
                                                         = 2(cos(x) - sin(x))


Ein neues Update ... das mit dem Sinus hat mir nicht gefallen ☺


Naja hier etwas neues ... problem ist nun das ich in pi/16 schritten arbeiten muss ... aber das fix ich noch :D

Ebendso muss die Formel vereinfacht werden :D
https://www.geogebra.org/calculator/umzgugpe

So jetzt gefällt es mir schon besser.

evtl noch die ganzen abs eleminiern aber so gefällt es mir schon besser :D

https://www.geogebra.org/calculator/umzgugpe

m2 ist meine lösung ohne sinus ... geht zwar nur von -360° bis 720° aber mehr brauch man eig. auch nicht :D

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community