WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bildverarbeitung Fehlerkorrektur

 

Matalps
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 05.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2013, 10:05     Titel: Bildverarbeitung Fehlerkorrektur
  Antworten mit Zitat      
Sehr geehrte Forumianer,
ich lese seit geraumer Zeit hier mit und bin über den Umgangston hier im Forum angenehm überrascht. Ich habe auch gleich ein Problem, welches ich hier gerne zur Diskussion stellen möchte.

Ich nehme mit einem Interferometer topographische Höhenwerte auf.
Es gibt in meinen Bildern jedoch immer Bereiche, welche schwarz sind, da kein Licht rückreflektiert wurde (bedeutet in meinem Vektor steht ein Inf an den besagten stellen.) Nun würde ich gerne ein Programm schreiben, welches die einzelnen Vektorelemente miteinander verlgeicht, und wenn eine sehr große Abweichung von einem Pixel zum nächsten auftaucht den Wert des vorangegangenen Pixels in das neue Pixel schreibt.
Hier mein Code:

Code:

A %ein Zeilenvektor, welcher alle Pixelinformationen (genauer topographische Höhen) enthält

i=2;
 for m = 1:length(A)+1;
    if 2*A(i)<A(i+1);
       A(i+1)=A(i);
    else A(i)=A(i);
       i=i+1;
    end
 end
Matrix=reshape(A,320,240);  

end
 


Wenn ich mir anschließend die Matrix Plotten lasse hat diese for Schleife jedoch keinerlei Auswirkung auf das Bild Sad

Macht es Sinn das so zu Programmieren, oder gibt es die Möglichkeit alle Bereiche, in denen Inf steht mit dem Mittelwert der umgebenden Pixel (also des Randes) zu füllen? Bzw. ist die Arbeit im Vektor sinvoller oder in der "reshapeden" Matrix?

Vielleicht könnt ihr mir helfen.

Danke schomal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 05.06.2013, 10:28     Titel: Re: Bildverarbeitung Fehlerkorrektur
  Antworten mit Zitat      
Hallo Matalps,

Herzlich willkommen im Forum!
Ich freue mich auch immer wieder über den Umgangston hier.

Die Schleife läuft zwar über "m", aber "m" wird innerhalb der Schleife gar nicht benutzt. Wenn "2*A(i)<A(i+1)" wird "i" nicht erhöht und "A(i)=A(i)" macht gar nichts sinnvolles.
Vielleicht meinst Du:
Code:
for i = 1:length(A)+1  % "m" -> "i"
    if 2*A(i)<A(i+1)
       A(i+1)=A(i);
    end
 end


Zitat:
Gibt es die Möglichkeit alle Bereiche, in denen Inf steht mit dem Mittelwert der umgebenden Pixel (also des Randes) zu füllen?

Die Möglichkeit gibt es:
Code:
valid = isfinite(A);
B = interp1(find(valid), A(valid), find(~valid), 'linear')

Wenn das Problem in 2-dimensional ist, sollte man das eigentlich auch berücksichtigen. Die kann z.B. hiermit erledigt werden:
http://www.mathworks.com/matlabcent.....in-1-d-2-d-3-d-n-d-arrays
http://www.mathworks.com/matlabcent.....exchange/4551-inpaintnans
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Matalps
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 05.06.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2013, 16:40     Titel:
  Antworten mit Zitat      
Hallo, Danke nochmal die Tipps waren prima - ich habe mich dazu entschlossen das Problem in 2D anzugehen - das hat wirklich prima geklappt und die Ergebnisse sehen fast zu gut aus!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.