|
|
Ändern der Auflösung eines 3D-Bildes |
|
Finn |
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 28.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.02.2013, 15:52
Titel: Ändern der Auflösung eines 3D-Bildes
|
|
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
|
|
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2013, 09:27
Titel:
|
|
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
|
|
|
Finn |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 28.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2013, 09:37
Titel:
|
|
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
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2013, 09:50
Titel:
|
|
|
|
Finn |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 21
|
|
|
|
Anmeldedatum: 28.11.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.02.2013, 10:08
Titel:
|
|
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)
|
|
|
Bluesmaster |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 13.11.11
|
|
|
|
Wohnort: Gera
|
|
|
|
Version: 2012a
|
|
|
|
|
|
Verfasst am: 08.02.2013, 10:17
Titel:
|
|
Ich denke der Link hilft auf jeden Fall, aber falls nicht gibt
es natürlich noch die "Handwerker"-Lösung
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
|
|
|
Bluesmaster |
Forum-Century
|
|
Beiträge: 203
|
|
|
|
Anmeldedatum: 13.11.11
|
|
|
|
Wohnort: Gera
|
|
|
|
Version: 2012a
|
|
|
|
|
|
Verfasst am: 08.02.2013, 10:18
Titel:
|
|
oh hoppla schon geklärt
|
|
|
|
|
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 - 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.
|
|