How to crop coordinates within a (Delaunay) surface?
Show older comments
Hi everyone,
I hope that I am explaining this problem clearly. I need to be able to crop out lower-resolution voxel coordinates that lie within a surface derived from higher-resolution voxel coordinates.
The long story short here is that I have data that comes from two different imaging modalities (high res: anatomical MRI; low res: diffusion tensor imaging, DTI). The image sets are co-registered to one another so they are aligned, but the anatomical MRI is much higher-resolution than the DTI. I'm able construct a surface for a brain landmark of interest in MATLAB using a Delaunay Triangulation, derived from the higher-resolution coordinates. I need a way to find the lower-resolution coordinates that lie within that surface. There is no direct overlap between the actual coordinates, so I can't just use a "find" command to fix this.
Can anyone help? Thanks in advance!
7 Comments
Sean de Wolski
on 6 May 2013
If the images are coregistered, do you have the transformation matrix?
Layla
on 6 May 2013
Layla
on 6 May 2013
Matt Kindig
on 6 May 2013
Edited: Matt Kindig
on 6 May 2013
Oh, in that case, you can use the inpolygon() function, which is designed for this (in 2D). Although I prefer the inpoly ( http://www.mathworks.com/matlabcentral/fileexchange/10391-fast-points-in-polygon-test) for this purpose, as it is much faster than the built-in version.
Matt Kindig
on 6 May 2013
I think inpoly() would work for your purpose. In my experience tsearchn() can be rather slow, and if all you need is to identify whether points are within a (highly irregular) polygon, inpoly() should be fine.
Layla
on 6 May 2013
Answers (0)
Categories
Find more on Triangulations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!