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

Ändern der Auflösung eines 3D-Bildes

 

Finn
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 28.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2013, 15:52     Titel: Ändern der Auflösung eines 3D-Bildes
  Antworten mit Zitat      
Hallo,

ich möchte bei einem 3D-Bild die Auflösung ändern. Wie interpoliere ich ein 3D-Bild zum Beispiel von 100x100x300 in 50x50x30? (also Verringerung der Auflösung in xy um 0.5 und in z um 0.1)

Vielen Dank,

Finn
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.02.2013, 09:27     Titel:
  Antworten mit Zitat      
Moin,

kannst du das bitte näher erklären. Was ist "ein" 3-D Bild mit 100x100x300.
Meinst du ein Stack? Die Bez. 3-D wird ziemlich strapaziert. Normalerweise meint man m*n*3, das sich mit imread einlesen lässt.

Dann zu der Auflösung. Du möchtest das Bild verkleinern? Man kann 100x100 mit 75 dpi oder auch 50*50 mit 300 dpi darstellen. Es ändert sich dabei die Bildgröße!

Grüße, Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Finn
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 28.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 09:37     Titel:
  Antworten mit Zitat      
Hallo,

ich meine ein 3D-stack mit 100x100x300 pixeln. Diesen möchte ich umwandeln in ein Stack von 50x50x30 pixeln. Mit imread habe ich es schon versucht, aber damit kann man nur in x und y interpolieren und das auch nur im gleichen Verhältnis. Möglicherweise ist interp3() die Lösung, aber ich werde aus der Funktion nicht schlau. Welche Parameter müssen für XI etc gewählt werden, um den stack wie beschrieben umzuwandeln?

interp3(XI,YI,ZI,stack,X1,Y1,Z1)


Schöne Grüße,

Finn
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 08.02.2013, 09:50     Titel:
  Antworten mit Zitat      
Ohne zu prüfen, hilft das weiter?

http://stackoverflow.com/questions/.....3d-matrix-image-in-matlab
Private Nachricht senden Benutzer-Profile anzeigen
 
Finn
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 28.11.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.02.2013, 10:08     Titel:
  Antworten mit Zitat      
Hallo, ja vielen Dank. So ein Beispiel hatte ich gesucht.


Hier nochmal der fertige Code für das Beispiel oben:

function test()
stack=rand(100,100,300); %%% input image
ny=50;nx=50;nz=30; %% desired output dimensions
[y x z]=...
ndgrid(linspace(1,size(stack,1),ny),...
linspace(1,size(stack,2),nx),...
linspace(1,size(stack,3),nz));
stackOut=interp3(stack,y,x,z);

assignin('base','stack',stack)
assignin('base','stackOut',stackOut)
Private Nachricht senden Benutzer-Profile anzeigen
 
Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 08.02.2013, 10:17     Titel:
  Antworten mit Zitat      
Ich denke der Link hilft auf jeden Fall, aber falls nicht gibt
es natürlich noch die "Handwerker"-Lösung


Code:
Neu = Alt( round(linspace( 1 , 100 , 50)) , round(linspace( 1 , 100 , 50)), round(linspace( 1 , 300 , 50  )) )



Keine Interpolation, sondern nur eine Auslichtung, wenn du keine starken
gradienten im Bild hast müsste das auch gehen.
Ist eine quasi-Nearest-point-Interpolation

Gruß

Blues
Private Nachricht senden Benutzer-Profile anzeigen
 
Bluesmaster
Forum-Century

Forum-Century



Beiträge: 203
Anmeldedatum: 13.11.11
Wohnort: Gera
Version: 2012a
     Beitrag Verfasst am: 08.02.2013, 10:18     Titel:
  Antworten mit Zitat      
oh hoppla schon geklärt Smile
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.