<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Please help me with this:</FONT></DIV>
<DIV><FONT face=Arial size=2>I get these error messages, when I'm linking 
application under Borland.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp; [Linker Error] Unresolved external 
'vtkThinPlateSplineTransform::New()' referenced from C:\PROGRAM 
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker Error] 
Unresolved external 'vtkThinPlateSplineTransform::SetSourceLandmarks(vtkPoints 
*)' referenced from C:\PROGRAM 
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker Error] 
Unresolved external 'vtkThinPlateSplineTransform::SetTargetLandmarks(vtkPoints 
*)' referenced from C:\PROGRAM 
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker Error] 
Unresolved external 'vtkThinPlateSplineTransform::SetBasis(int)' referenced from 
C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker 
Error] Unresolved external 'vtkTransformToGrid::New()' referenced from 
C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker 
Error] Unresolved external 'vtkGridTransform::New()' referenced from C:\PROGRAM 
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR>&nbsp; [Linker Error] 
Unresolved external 'vtkGridTransform::SetInterpolationMode(int)' referenced 
from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<BR></DIV></FONT>
<DIV><FONT face=Arial size=2>Where is the problem please?</FONT></DIV>
<DIV><FONT face=Arial size=2>Thanks, Radim</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Here is my simple code:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>//---------------------------------------------------------------------------<BR>#include 
"vtkPolyData.h"<BR>#include "vtkTransform.h"<BR>#include 
"vtkTransformPolyDataFilter.h"<BR>#include "vtkWarpScalar.h"<BR>#include 
"vtkBMPReader.h"<BR>#include "vtkImageReslice.h"<BR>#include 
"vtkGridTransform.h"<BR>#include "vtkTransformToGrid.h"<BR>#include 
"vtkThinPlateSplineTransform.h"<BR>#include "vtkPoints.h"<BR>#include 
"vtkImageBlend.h"<BR>#include "vtkImageMapToColors.h"<BR>#include 
"vtkLookupTable.h"<BR>#include "vtkImageGridSource.h"<BR>#include 
"vtkImageViewer.h"</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#include &lt;stdio.h&gt;<BR>#include 
&lt;vcl.h&gt;<BR>#pragma hdrstop</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>//---------------------------------------------------------------------------</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>#pragma argsused<BR>int main(int argc, char* 
argv[])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //# first, create an 
image to warp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkImageGridSource 
*imageGrid = 
vtkImageGridSource::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
imageGrid-&gt;SetGridSpacing( 16, 16, 
0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
imageGrid-&gt;SetGridOrigin( 0, 0, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
imageGrid-&gt;SetDataExtent( 0, 255, 0, 255, 0, 
0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
imageGrid-&gt;SetDataScalarTypeToUnsignedChar();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkLookupTable *table = 
vtkLookupTable::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;SetTableRange( 0, 1 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;SetValueRange( 1.0, 
0.0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;SetSaturationRange( 0.0, 
0.0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;SetHueRange( 0.0, 0.0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;SetAlphaRange( 0.0, 1.0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
table-&gt;Build();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkImageMapToColors *alpha = 
vtkImageMapToColors::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
alpha-&gt;SetInput( imageGrid-&gt;GetOutput() 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
alpha-&gt;SetLookupTable( table );</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkBMPReader *reader1 = 
vtkBMPReader::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
reader1-&gt;SetFileName( "c:/Data/Retina/3D/105939/L/105939l000.bmp" 
);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkImageBlend *blend = 
vtkImageBlend::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
blend-&gt;SetInput( 0, reader1-&gt;GetOutput() 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
blend-&gt;SetInput( 1, alpha-&gt;GetOutput() );</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>//# next, create a ThinPlateSpline 
transform</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkPoints 
*p1=vtkPoints::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetNumberOfPoints( 8 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 0, 0, 0, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 1, 0, 255, 
0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 2, 255, 0, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 3, 255, 255, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 4, 96, 96, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 5, 96, 159, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 6, 159, 159, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p1-&gt;SetPoint( 7, 159, 96, 0 );</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
vtkPoints 
*p2=vtkPoints::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetNumberOfPoints( 8 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 0, 0, 0, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 1, 0, 255, 
0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 2, 255, 0, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 3, 255, 255, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 7, 96, 96, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 5, 96, 159, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 5, 159, 159, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
p2-&gt;SetPoint( 6, 159, 96, 0 );</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV><FONT face=Arial size=2>
<DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkThinPlateSplineTransform 
*thinPlate = 
vtkThinPlateSplineTransform::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
thinPlate-&gt;SetSourceLandmarks( p2 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
thinPlate-&gt;SetTargetLandmarks( p1 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
thinPlate-&gt;SetBasisToR2LogR();</DIV>
<DIV>&nbsp;</DIV>
<DIV>//# convert the thin plate spline into a grid</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkTransformToGrid 
*transformToGrid = 
vtkTransformToGrid::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transformToGrid-&gt;SetInput( thinPlate 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transformToGrid-&gt;SetGridSpacing( 16, 16, 1 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transformToGrid-&gt;SetGridOrigin( -0.5, -0.5, 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transformToGrid-&gt;SetGridExtent(0, 16, 0, 16, 0, 0);</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkGridTransform *transform = 
vtkGridTransform::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transform-&gt;SetDisplacementGrid( transformToGrid-&gt;GetOutput() 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transform-&gt;SetInterpolationModeToCubic();</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //# you must invert the 
transform before passing it to 
vtkImageReslice<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
transform-&gt;Inverse();</DIV>
<DIV>&nbsp;</DIV>
<DIV>//# apply the grid warp to the image</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkImageReslice *reslice = 
vtkImageReslice::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
reslice-&gt;SetInput( blend-&gt;GetOutput() 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
reslice-&gt;SetResliceTransform( transform 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
reslice-&gt;SetInterpolationModeToLinear();</DIV>
<DIV>&nbsp;</DIV>
<DIV>//# set the window/level to 255.0/127.5 to view full 
range<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vtkImageViewer *viewer = 
vtkImageViewer::New();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
viewer-&gt;SetInput( reslice-&gt;GetOutput() 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
viewer-&gt;SetColorWindow( 255.0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
viewer-&gt;SetColorLevel( 127.5 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
viewer-&gt;SetZSlice( 0 
);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
viewer-&gt;Render();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
getchar();</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
0;<BR>}<BR>//---------------------------------------------------------------------------<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>======================================================<BR>Department of 
Biomedical Engineering<BR>Faculty of Electrical Engineering and 
Communication<BR>Brno University of Technology<BR>Purkynova 118<BR>61200 Brno, 
Czech Republic<BR>tel: 541 149 551<BR>fax: 541 149 542<BR>mail: <A 
href="mailto:kolarr@feec.vutbr.cz">kolarr@feec.vutbr.cz</A><BR>Visit BIOSIGNAL 
2004 web site: <A 
href="http://www.feec.vutbr.cz/UBMI/bs2004.html">http://www.feec.vutbr.cz/UBMI/bs2004.html</A><BR>======================================================</FONT></DIV></BODY></HTML>