|
|
Fuktion um aus RGB Daten die Norm zu berechnen |
|
Frederike |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2020, 12:36
Titel: Fuktion um aus RGB Daten die Norm zu berechnen
|
|
Hallo,
Ich soll eine Funktion schreiben u mein RGB Bild in ein Graustufen Bild umzuwandeln. Hierzu soll ich die einzelnen Matrix Elemente durch die Pixel aij b teilen und aij berechne ich über die Formel : .
Das ist die Funktion die ich geschrieben habe und nun bekomme ich die Fehlermeldung "Struct contents reference from a non-struct array object."
Vielleicht kann mir ja jemand sagen wo mein Fehler ist
Viele Grüße
Frederike
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.11.2020, 12:48
Titel:
|
|
Hallo,
ein Tippfehler: bild(i,j,3)
bild ist vermutlich 3D? Du indizierst aber einmal mit bild(i,j), was eher nach 2D aussieht. Ich sehe auch nicht, wo nun der Übergang von 3D zu 2D stattfindet. Durch die Division findet m.E. nur eine Umskalierung statt.
Im übrigen sollte das ganze auch ohne for-Schleifen gehen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Frederike |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2020, 13:40
Titel:
|
|
Hallo Harald,
Vielen lieben Dank für deine Antwort.
Das Bild ist eine mxnx3 Matrix und die 3 steht für die 3 Farbkanäle des Bildes. Und die Funktion soll dann am Ende ein Bild der größe mxn erzeugen(ein grauwert Bild) .
Ich habe gerade gesehend das ich es doch nicht teilen muss. Ich muss nur die Formel implementieren und über die Formel die neuen Matrixelemente des Bildes berechnen.
Meine Idee war das ich mt den 2 For Schleifen über jedes Pixel des Bildes laufe und dann die neuen Werte über die Formel berechne.
Nun habe ich den Tippfehler korrigiert und auch das / fürs teilen entfernt und nun kommt die Fehlermeldung "Index exceeds matrix dimensions. " Soweit ich es heruasgefunden habe, heißt die Fehlermeldung das ich auf Matrix Elemente zugreifen will, die ich nicht habe aber ich weiß leider nicht an welcher Stelle mein Fehler im Code ist.
Vielleicht hat ja jemand hier noch einen tipp für mich
lg Frederike
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.11.2020, 14:19
Titel:
|
|
Hallo,
poste bitte deinen aktuellen Code.
Zitat: |
Meine Idee war das ich mt den 2 For Schleifen über jedes Pixel des Bildes laufe und dann die neuen Werte über die Formel berechne. |
Ich verstehe die Idee. Das macht aber den MATLAB-Code (unnötig) komplex.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Frederike |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2020, 14:49
Titel:
|
|
Hallo,
Anbei einmal mein aktueller Code
Viele Grüße
Frederike
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 17.11.2020, 15:23
Titel:
|
|
Hallo,
Für solche Probleme würde ich den Debugger verwenden.
Das Problem dürfte die Vorbelegung von BildGray sein. Stand jetzt ist das ein Vektor von drei Zahlen. Sinnvoller fände ich
Meines Erachtens sollte ich der Inhalt der Funktion in einer Zeile zusammenfassen lassen:
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
|
|
|
Frederike |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2020, 17:53
Titel:
|
|
Hallo Harald,
Super vielen Dank für deine Antwort. Mit deiner Idee mit einer Zeile Code klappt es aber mit den 2 For Schleifen nicht. Ich verusche gerade herauszufinden wo mein Fehler ist, da ich gerne verstehen würde warum das mit den 2 For Schleifen nicht klappt.
Weißt du vielleicht woran es liegt das es mit den For Schleifen nicht klappt?
Das ist nun mein aktueller Code
Ich bekomme immer noch diese Fehlermeldung:
Index exceeds matrix dimensions.
Viele Grüße
Frederike
|
|
|
Frederike |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.11.2020, 18:15
Titel:
|
|
Moin Harald,
Ich habe den Fehler selbst gefunden durch Debugging
Nun klappt alles wie es soll! Vielen lieben Dank nochmal für deine Hilfe.
Viele Grüße
Frederike
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|