Posted by
Philip Ershler on
Jan 21, 2009; 1:54am
URL: http://imagej.273.s1.nabble.com/Copy-volume-from-within-stack-to-new-stack-tp3693965p3693982.html
On Jan 20, 2009, at 4:35 PM, Johannes Schindelin wrote:
> Hi,
>
> On Tue, 20 Jan 2009, Philip Ershler wrote:
>
>> On Jan 20, 2009, at 2:39 PM, Johannes Schindelin wrote:
>>
>>> On Tue, 20 Jan 2009, Philip Ershler wrote:
>>>
>>>> Here is a macro although fairly basic, does the job. It takes a
>>>> stack of images and creates a stack of 3D images. Just setup the
>>>> Interactive 3D viewer with the view and other settings that you
>>>> want. Then execute this macro.
>>>
>>> How does that give you a time axis in the 3D viewer?
>>>
>>> AFAICT it takes all the slices of the current stack, one by one,
>>> turns
>>> them into height fields _individually_, and then puts those height
>>> fields into a new stack.
>>>
>>> So rather than show XYZ data progressing in time, it takes an XYT
>>> stack
>>> (two spatial dimensions and a time dimension), adds a (redundant)
>>> 3rd
>>> dimension reflecting the intensity of the slice's pixels, and puts
>>> the
>>> result into another XYT stack.
>>>
>>> Am I wrong?
>>
>> Yes I think you have misunderstood the process.
>
> Well, I don't think so.
>
>> The macro takes one XY image at a time,
>
> That's what I am saying.
>
>> submits it to the Interactive 3D viewer,
>
> Except that it is the Interactive Surface Plot, which makes a height
> field
> out of a 2D image. What I said (actually I said that it adds a 3rd
> dimension -- the height -- from the intensity of the pixels, but
> that the
> same thing).
>
>> and the result is an XYZ image for that time point.
>
> As you say "time point" here, you agree that the slices (XY) you
> take from
> the stack are actually from different times (T), not depth (Z).
>
> So you are taking an XYT stack as input, not XYZ.
>
>> This image is placed on a new stack. Then it takes the next image
>> from
>> the stack of XY images (which represents the next point in time) and
>> creates an XYZ image for that time point and adds it to the new
>> stack.
>
> Except that it is not really XYZ. It is a projection of the height-
> field
> of a 2D image. Which is two-dimensional.
>
> So basically you constructed another 2D image from an original 2D
> image.
>
>> The resulting new stack is an XYZT stack, allowing you to animate the
>> XYZ images that are constructed from the original XY data.
>
> As you have no control from which viewpoint you are looking at your
> data,
> it is essentially an XYT stack.
>
> If I understood Aryeh correctly, what he wants is to visualize 3D
> stacks
> (XYZ, i.e some recordings of a confocal microscope or some such,
> where you
> have slices for different z coordinates), and he has several 3D stacks
> recorded from the same specimen taken at different time points.
>
> So this means that he has an XYZT hyperstack.
>
> And he wants to see a 3D visualization (volume rendering, thresholded
> surface, or something like that) over time, and while it loops
> through the
> time steps, he wants to turn it around interactively (meaning
> rotating/moving the specimen around, all the while it is looping
> through
> the time steps).
OK, if that's what the OP is after, then what I've put up ain't it.
But if
you want to interactively pick a 3D view and then make an animation of
that view, then the macro does it.
Thanks
>
>
> I might be utterly wrong about what Aryeh meant, but I am certain that
> Benjamin meant that, because I saw the 4D stuff in the 3D viewer in
> action, and it is pretty awesome.
>
> Think a single cell, going through mitosis, being recorded in 3D,
> and you
> can now see it in 3D, zooming in while it is developing, rotating it
> so
> you get a better view.
>
> It's definitely absolutely awesome,
> Dscho