|
On Wed, 18 Mar 2009 14:18:01 -0400, David <david2008.w@gmail.com> wrote:
> "Ashish Uthama" <first.last@mathworks.com> wrote in message
> <op.uqz0qhk5a5ziv5@uthamaa.dhcp.mathworks.com>...
>> On Tue, 17 Mar 2009 11:11:01 -0400, David <david2008.w@gmail.com>
>> wrote:
>>
>> > Dear all,
>> >
>> > I am wondering is there any available routine working on 3D matrix
>> > (image volume) in a
>> > similar way to imresize on 2D images?
>> >
>> > What in my mind is to apply 'imresize' to the first two dimension,
>> then
>> > interpolate the third dimension. However, intuitively i wouldn't think
>> > this is an appropriate way to do it, since I think the output voxel
>> > should be a weighted average of its neighourhood in 3D space. (say, 6
>> > nearest neighbour)
>> >
>> > any suggestions? Thanks in advance.
>> >
>> > David
>>
>>
>> Just thinking aloud, if x,y,z are the three dimensions,
>> would it work to resize on each x-y slice first, then y-z?
>>
>> looking at the picuture:
>> http://en.wikipedia.org/wiki/Trilinear_interpolation
>>
>> Or I guess some use of TFORMARRAY might do the trick.
>
> Ashish,
>
> Thanks for your reply.
>
> resize on each x-y slice first, then y-z
> I think there might be some problems by performing the 'imresize'
> process separately. For instance, If I 'resize' the original image
> volume by a factor of 0.5 (i.e., 'downsampling' the original volume by a
> factor of two) Ideally, the resized image should contains half
> information along the three direction. If we resize the XY slice, and
> then YZ, the second 'imresize' does not exactly halving the informaion.
>
> Or I guess some use of TFORMARRAY might do the trick.
> I agree that the trick can hopefully be solved by using TFORMARRAY,
Ah yes, The IMRESIZE would reduce y twice.
How about something like DECIMATE along each dimension one after the
other? %beat an idea till it dies :D
Might not be efficient though, let us know if you figure out TFORMARRAY.
|