<html>
<body>
Radim,<br><br>
Did you link against the vtkHybrid library?<br><br>
- Amy<br><br>
At 01:54 PM 3/5/2004, =?iso-8859-2?B?UmFkaW0gS29s4fg=?= wrote:<br>
<blockquote type=cite class=cite cite><font face="arial" size=2>Please
help me with this:<br>
I get these error messages, when I'm linking application under
Borland.<br>
</font> <br>
<font face="arial" size=2> [Linker Error] Unresolved external
'vtkThinPlateSplineTransform::New()' referenced from C:\PROGRAM
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external
'vtkThinPlateSplineTransform::SetSourceLandmarks(vtkPoints *)' referenced
from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external
'vtkThinPlateSplineTransform::SetTargetLandmarks(vtkPoints *)' referenced
from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external
'vtkThinPlateSplineTransform::SetBasis(int)' referenced from C:\PROGRAM
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external 'vtkTransformToGrid::New()'
referenced from C:\PROGRAM
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external 'vtkGridTransform::New()'
referenced from C:\PROGRAM
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
[Linker Error] Unresolved external
'vtkGridTransform::SetInterpolationMode(int)' referenced from C:\PROGRAM
FILES\BORLAND\CBUILDER6\PROJECTS\WARP\UNIT1.OBJ<br>
Where is the problem please?<br>
Thanks, Radim<br>
</font> <br>
<font face="arial" size=2>Here is my simple code:<br>
</font> <br>
<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"<br>
</font> <br>
<font face="arial" size=2>#include <stdio.h><br>
#include <vcl.h><br>
#pragma hdrstop<br>
</font> <br>
<font face="arial" size=2>//---------------------------------------------------------------------------<br>
</font> <br>
<font face="arial" size=2>#pragma argsused<br>
int main(int argc, char* argv[])<br>
{<br>
//# first, create an image to
warp<br>
vtkImageGridSource *imageGrid
= vtkImageGridSource::New();<br>
imageGrid->SetGridSpacing( 16, 16, 0);<br>
imageGrid->SetGridOrigin( 0, 0, 0 );<br>
imageGrid->SetDataExtent( 0, 255, 0, 255, 0, 0);<br>
imageGrid->SetDataScalarTypeToUnsignedChar();<br>
</font> <br>
<font face="arial" size=2>
vtkLookupTable *table = vtkLookupTable::New();<br>
table->SetTableRange( 0, 1 );<br>
table->SetValueRange( 1.0, 0.0);<br>
table->SetSaturationRange( 0.0, 0.0);<br>
table->SetHueRange( 0.0, 0.0 );<br>
table->SetAlphaRange( 0.0, 1.0 );<br>
table->Build();<br>
</font> <br>
<font face="arial" size=2>
vtkImageMapToColors *alpha = vtkImageMapToColors::New();<br>
alpha->SetInput( imageGrid->GetOutput() );<br>
alpha->SetLookupTable( table );<br>
</font> <br>
<font face="arial" size=2>
vtkBMPReader *reader1 = vtkBMPReader::New();<br>
reader1->SetFileName(
"c:/Data/Retina/3D/105939/L/105939l000.bmp" );<br>
</font> <br>
<font face="arial" size=2>
vtkImageBlend *blend = vtkImageBlend::New();<br>
blend->SetInput( 0, reader1->GetOutput() );<br>
blend->SetInput( 1, alpha->GetOutput() );<br>
</font> <br>
<font face="arial" size=2>//# next, create a ThinPlateSpline
transform<br>
</font> <br>
<font face="arial" size=2>
vtkPoints *p1=vtkPoints::New();<br>
p1->SetNumberOfPoints( 8 );<br>
p1->SetPoint( 0, 0, 0, 0 );<br>
p1->SetPoint( 1, 0, 255, 0);<br>
p1->SetPoint( 2, 255, 0, 0 );<br>
p1->SetPoint( 3, 255, 255, 0 );<br>
p1->SetPoint( 4, 96, 96, 0 );<br>
p1->SetPoint( 5, 96, 159, 0 );<br>
p1->SetPoint( 6, 159, 159, 0 );<br>
p1->SetPoint( 7, 159, 96, 0 );<br>
</font> <br>
<font face="arial" size=2>
vtkPoints *p2=vtkPoints::New();<br>
p2->SetNumberOfPoints( 8 );<br>
p2->SetPoint( 0, 0, 0, 0 );<br>
p2->SetPoint( 1, 0, 255, 0);<br>
p2->SetPoint( 2, 255, 0, 0 );<br>
p2->SetPoint( 3, 255, 255, 0 );<br>
p2->SetPoint( 7, 96, 96, 0 );<br>
p2->SetPoint( 5, 96, 159, 0 );<br>
p2->SetPoint( 5, 159, 159, 0 );<br>
p2->SetPoint( 6, 159, 96, 0 );<br>
</font> <br>
<font face="arial" size=2><br>
vtkThinPlateSplineTransform
*thinPlate = vtkThinPlateSplineTransform::New();<br>
thinPlate->SetSourceLandmarks( p2 );<br>
thinPlate->SetTargetLandmarks( p1 );<br>
thinPlate->SetBasisToR2LogR();<br>
<br>
//# convert the thin plate spline into a grid<br>
<br>
vtkTransformToGrid
*transformToGrid = vtkTransformToGrid::New();<br>
transformToGrid->SetInput( thinPlate );<br>
transformToGrid->SetGridSpacing( 16, 16, 1 );<br>
transformToGrid->SetGridOrigin( -0.5, -0.5, 0 );<br>
transformToGrid->SetGridExtent(0, 16, 0, 16, 0, 0);<br>
<br>
vtkGridTransform *transform =
vtkGridTransform::New();<br>
transform->SetDisplacementGrid( transformToGrid->GetOutput()
);<br>
transform->SetInterpolationModeToCubic();<br>
<br>
//# you must invert the
transform before passing it to vtkImageReslice<br>
transform->Inverse();<br>
<br>
//# apply the grid warp to the image<br>
<br>
vtkImageReslice *reslice =
vtkImageReslice::New();<br>
reslice->SetInput( blend->GetOutput() );<br>
reslice->SetResliceTransform( transform );<br>
reslice->SetInterpolationModeToLinear();<br>
<br>
//# set the window/level to 255.0/127.5 to view full range<br>
vtkImageViewer *viewer =
vtkImageViewer::New();<br>
viewer->SetInput( reslice->GetOutput() );<br>
viewer->SetColorWindow( 255.0 );<br>
viewer->SetColorLevel( 127.5 );<br>
viewer->SetZSlice( 0 );<br>
viewer->Render();<br>
getchar();<br>
<br><br>
return 0;<br>
}<br>
//---------------------------------------------------------------------------<br>
</font> <br>
<br>
<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></blockquote></body>
</html>