ich habe zwei Bilder mit identischen Dimensionen und möchte nun für jede Grauwertkombination (x,y) mit x,y = [0...255] die Häufigkeit bestimmen und daraus ein "Histogrammbild" bestimmen (Dimensionen 256x256).
Momentan habe ich es mit 2 ineinander verschachtelten for-Schleifen gelöst, die jeweils von 1...256 laufen. Dies ist jedoch bei größeren Bilddaten äusserst langsam.
Frage:
Wie kann ich den Code schneller machen? Gibt es evtl sogar Matlab-eigene Routinen zur Berechnung eines solchen Histogramms bzw zur Abfrage der Existenzhäufigkeit eines bestimmten Grauwertpaares?
Ich verstehe das Problem noch nicht. Wie wird die "Grauwertkombination (x,y)" genau gebildet? Is x der Wert aus dem einen Bild und y der Wert aus dem zweiten Bild an jeweils der gleichen Pixel-Position?
Wenn Du Deinen Ansatz mit den FOR-Loops posten würdest, könnte man Ratschläge zur Beschleunigung geben und wahrscheinlich wäre damit auch meine Nachfrage bereits geklärt.
könntest Du bitte den entsprechenden Code mit hist3 posten? Habe in der Doku leider nur Hinweise gefunden, die diesen Befehl als Plotroutine darstellen.
Ich möchte jedoch kein Histogramm geplottet haben, sondern ein 2D-"Histogrammbild" erstellen. Dies ist eine 256x256-Matrix mit den Existenzhäufigkeiten der Grauwertpaare in den beiden Eingangsbildern.
ich merke gerade, dass ich von deiner ursprünglichen Fragestellung ausgegangen war und die falsch verstanden habe.
Was jedoch gehen sollte:
Code:
data = [image1(:), image2(:)];
N = hist3(data, {0:255, 0:255});
image(N)
Grüße,
Harald
leon81
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 08.11.2011, 17:09
Titel:
Hallo,
vielen Dank, das hat mir weitergeholfen.
Sieht gut aus, scheint so als wenn es funktioniert.
Nochmals danke für Deinen Einsatz und viele Grüße
Options and Permissions
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
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.