Hi David,<br><br>Yours is probably the quickest reply I've got so far through this list. Thanks again! Now I know how vtkProbeFilter works. Looks like I have to figure out a way to interpolate my data outside VTK. I am considering getting all the data available and then use vtkImageReslice, since it provides several choices of interpolation method.
<br><br>Could you explain a little bit of the Matrices for axial, coronal, sagittal, oblique view orientations part in your example code?<span style="font-family: monospace;"><br><br></span>//static double axialElements[16] = {
<br><pre> // 1, 0, 0, 0,<br> // 0, 1, 0, 0,<br> // 0, 0, 1, 0,<br> // 0, 0, 0, 1 };<br><br> //static double coronalElements[16] = {<br> // 1, 0, 0, 0,<br> // 0, 0, 1, 0,
<br> // 0,-1, 0, 0,<br> // 0, 0, 0, 1 };<br><br> static double sagittalElements[16] = {<br> 0, 0,-1, 0,<br> 1, 0, 0, 0,<br> 0,-1, 0, 0,<br> 0, 0, 0, 1 };<br><br> //static double obliqueElements[16] = {
<br> // 1, 0, 0, 0,<br> // 0, 0.866025, -0.5, 0,<br> // 0, 0.5, 0.866025, 0,<br> // 0, 0, 0, 1 };<br></pre><br><div><span class="gmail_quote">I don't quite understand the four different view orientations. Last time I tried axial view and got the first image in my email. I got a blank scene with other view orientations.
<br><br>Thanks,<br>Janny<br><br>On 6/14/07, <b class="gmail_sendername">David Gobbi</b> <<a href="mailto:dgobbi@atamai.com">dgobbi@atamai.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Janny,<br><br>You can avoid the second triangularization if you use vtkPlaneSource to<br>create the polydata that you probe your original points with. The<br>SetXResolution and SetYResolution methods of vtkPlaneSource set the
<br>number of "squares" that the plane is divided into in X and Y. The<br>number of points along each edge is equal to the resolution plus one.<br><br>The reason that you weren't seeing anything is that you have to generate
<br>polygons from the points before they can be rendered (unless you render<br>them as verts, in which case the points are just rendered as points).<br><br>The single color for the "outside" is there because of the way that
<br>vtkProbeFilter works. It can only do interpolation within the triangles<br>produced by the triangularization, everything outside is set to a<br>background color. To properly fill in these values you would have to do
<br>your interpolation using something like radial basis functions or with a<br>relaxation method, neither of which is supported in VTK.<br><br> - David<br><br><br><br>Janny Dong wrote:<br>> Hey David,<br>><br>> Thank you so much. I tried the vtkDelaunay2D then vtkProbeFilter
<br>> approach you suggested. What I did is use vtkDelaunay2D to triangulate<br>> a polydata set of 16 points with known scalars, then probe it with<br>> another polydata set of 36 points, then use vtkDelaunay2D again and
<br>> map the output to polydata mapper and display them. I got Image1 as<br>> attached. I did triangulation again because the render window was<br>> blank if I map output of vtkProbeFilter directly to polydata mapper. I
<br>> may have done something wrong.<br>><br>> Another thing is if the known data points are not evenly distributed,<br>> I got Image2, where all known 16 data are at the bottom left area.<br>> The area outside the known data values was interpolated as one color.
<br>> Is it normal that the data outside the 4*4 area got the same scalar<br>> value?<br>><br>> Thanks,<br>> Janny<br>><br>><br>> On 6/13/07, *David Gobbi* < <a href="mailto:dgobbi@atamai.com">dgobbi@atamai.com
</a><br>> <mailto:<a href="mailto:dgobbi@atamai.com">dgobbi@atamai.com</a>>> wrote:<br>><br>> Hi Janny,<br>><br>> If your original data points do not form a complete, regular grid,<br>> then
<br>> vtkImageReslice won't give you the result you want. You can't use<br>> vtkImageReslice to fill in the gaps.<br>><br>> Instead, you could try using vtkDelaunay2D to triangularize the data
<br>> followed by vtkProbeFilter to interpolate the data. A limitation of<br>> ProbeFilter is that it always does linear interpolation, and it cannot<br>> interpolate beyond the hull of the original set of points.
<br>><br>> - David<br>><br>><br>> Janny Dong wrote:<br>> > I am trying to get a color contour map out of several data points.<br>> > Let's say, I need a nice and smooth 2D color map of dimension
<br>> 5*5, so<br>> > that's 25 points. I know the positions of the points of course,<br>> but I<br>> > only know 10 data values (scalars). Therefore I need some<br>> > interpolation to get to know data values (scalars) at all positions
<br>> > and map them to colors.<br>> ><br>> > I put my data into ImageData, and I am using ImageReslice in<br>> order to<br>> > do the interpolation I want. I constructed pipelines following the
<br>> > example David Gobbi provided at<br>> ><br>> <a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain">
http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain</a><br>> <<a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain">
http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain</a>><br>> > <<br>> <a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain">
http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain</a><br>> <<a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain">
http://public.kitware.com/cgi-bin/viewcvs.cgi/*checkout*/Examples/ImageProcessing/Cxx/ImageSlicing.cxx?root=VTK&content-type=text/plain</a>>><br>> ><br>> > Then I got an image as attached. For now, I just input 10 random
<br>> > scalar values to 10 positions. I used cubic interpolation. What<br>> I want<br>> > is interpolation over the whole image area, not just near every<br>> point.<br>> > How can I achieve such visualization effect?
<br>> ><br>> > Actually I just tried everything to get the visualization effect<br>> from<br>> > the Matlab functions griddata, which fits a surface of the form z =<br>> > f(x,y) to the data in the (usually) nonuniformly spaced vectors
<br>> > (x,y,z), but I couldn't find a way in VTK to do the interpolation. I<br>> > read from Matlab help document that the griddata methods (nearest<br>> > neighbor, cubic, linear) are based on a Delaunay triangulation
<br>> of the<br>> > data that uses Qhull. However I have no experience with Qhull<br>> and not<br>> > much time to dig into it. Also, I have to do the project in C++ not<br>> > Matlab. VTK is such a powerful visualization tool so I hope I
<br>> could do<br>> > it with VTK.<br>> ><br>> > Thanks a lot.<br>> > Janny<br>> ><br>> ><br>> ------------------------------------------------------------------------
<br>> ><br>> ><br>> ------------------------------------------------------------------------<br>><br>> ><br>> > _______________________________________________<br>> > This is the private VTK discussion list.
<br>> > Please keep messages on-topic. Check the FAQ at:<br>> <a href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a> <<a href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ
</a>><br>> > Follow this link to subscribe/unsubscribe:<br>> > <a href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>> <<a href="http://www.vtk.org/mailman/listinfo/vtkusers">
http://www.vtk.org/mailman/listinfo/vtkusers</a>><br>> ><br>><br>><br>><br>> ------------------------------------------------------------------------<br>><br>><br>> ------------------------------------------------------------------------
<br>><br><br></blockquote></div><br>