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

Kreisförmiges Objekt im Bild in Polarkoordinaten darstellen

 

nikey
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.05.2013, 12:24     Titel: Kreisförmiges Objekt im Bild in Polarkoordinaten darstellen
  Antworten mit Zitat      
Hallo zusammen,

ich habe ein MR-Bild (grayscale) mit dem Querschnitt eines Baumes. Also ist das Objekt im Bild relativ kreisförmig.
Nun möchte ich dieses Bild in Polarkoordinaten umformen, sodass man den Mittelpunkt auswählt (das klappt) und den Umkreis berechnet und die Daten samplet. Wie das ungefähr aussieht sieht man in dem angehängten Bild.
Der dazugehörige Code sieht folgendermaßen aus:

Code:

[r c] = size(img);
[X Y] = meshgrid(1:c,1:r);
[theta rho] = cart2pol(X-centroid(1), Y-centroid(2));

warp(theta, rho, zeros(size(theta)), img);

view(2), axis ([0 pi 0 200]), axis xy, axis off
 

Ich denke, dass sieht eigentlich schon gar nicht verkeht aus, nur gebe ich jetzt die 200 manuell vor und ja auch nur beim Plotten.
Außerdem möchte ich das als Image (als zweidimensionales Array) haben, sodass ich darauf weitere Operationen ausführen kann. Außerdem werden jetzt alle Koordinaten in Polarkoordinaten umgewandelt aber ich möchte halt eigentlich nur im Radius des kleinsten Umkreises, sodass die x-Achse der Pixellänge des kleinsten Umkreises entspricht und die y-Achse der Pixellänge des Radius. Der Bereich soll verlustfrei dargestellt werden, sodass man es theoretisch auch wieder zurück transformieren kann.
Ich hoffe mein Problem ist einigermaßen verständlich und es kann mir jemand weiterhelfen.

Image in Polarkoordinaten.jpg
 Beschreibung:

Download
 Dateiname:  Image in Polarkoordinaten.jpg
 Dateigröße:  92.42 KB
 Heruntergeladen:  914 mal
Private Nachricht senden Benutzer-Profile anzeigen


Ajax
Forum-Century

Forum-Century


Beiträge: 176
Anmeldedatum: 09.09.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.05.2013, 08:42     Titel:
  Antworten mit Zitat      
Hallo,
leider verstehe ich dein Problem nicht ganz.
Du hast ein MR-Bild eines Baumstammes und willst die Jahresringe bestimmen (also deren Radius und Mittelpunkt). Stimmt das? Falls ja, könntest du es evtl. relativ einfach mit der Hough-Transformation lösen. Ich kann dir gerne dazu mehr Informationen geben, falls das bei deinem Problem weiterhilft.
mfg
Ajax
Private Nachricht senden Benutzer-Profile anzeigen
 
nikey
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 08.06.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2013, 07:16     Titel:
  Antworten mit Zitat      
Ja darauf soll es hinauslaufen, hier wollte ich aber einfach nur eine Umwandlung in Polarkoordinaten, sodass man einen Mittelpunkt im Bild vorgibt und von dem mit einem festgelegten Radius, dass Bild verlustfrei in Polarkoordinaten darstellt.
Mittlerweile sieht mein Code jetzt so aus und entspricht dem, was ich haben wollte.

Code:

[r,c]=size(image);
% centroid ist beliebliger Punkt im Bild
radius = floor(min([centroid(1),centroid(2),r-centroid(1),c-centroid(2)]));
perimeter = floor(2*pi*radius);
angle = 2*pi;

cx = centroid(1);
cy = centroid(2);

pcimg = zeros(radius,perimeter);
i     = 1;
for r=0:radius-1
    j = 1;
    for a=0:angle/perimeter :angle
        n = floor(cy+round(r*sin(a)));
        m = floor(cx+round(r*cos(a)));
        pcimg(i,j) = image(n,m);
        j = j + 1;
    end
    i = i + 1;
end
 
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 - 2024 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.