[vtkusers] What's wrong with the code?
cly
clyao at cugb.edu.cn
Fri Mar 29 04:50:51 EST 2002
Hi,
The following codes was the exact example in the vtk book(1998), but I got different results, which I think it were wrong, and have attatched as a series pictures. (I failed twice as a whole picture for its size.)
I changed with many values of isosurfaces, tried to find a smooth 'real' skin of the head, but failed at last.
Someone can help.
Many thanks in advance,
Changli, Yao
/* the program in the book ia as these:*/
//include class definitions
#include "vtkRenderer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkVolume16Reader.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkOutlineFilter.h"
#include "vtkCamera.h"
#include "../patented/vtkMarchingCubes.h"
void main(void)
{
//create the renderer stuff
vtkRenderer *aRenderer = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(aRenderer);
vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);
//read the volume
vtkVolume16Reader *v16 = vtkVolume16Reader::New();
v16->SetDataDimensions(64,64);
v16->SwapBytesOn();
v16->SetFilePrefix("headsq/quarter");
v16->SetImageRange(1, 93);
v16->SetDataSpacing(3.2,3.2,1.5);
//extract the skin
vtkMarchingCubes *skinExtractor = vtkMarchingCubes::New();
skinExtractor->SetInput(v16->GetOutput());
skinExtractor->SetValue(0, 500);//or (0, 5000),(0, 10000),(0, 40000),(0, 50000),(0,60000)
vtkPolyDataMapper* skinMapper = vtkPolyDataMapper::New();
skinMapper->SetInput(skinExtractor->GetOutput());
skinMapper->ScalarVisibilityOff();
vtkActor *skin = vtkActor::New();
skin->SetMapper(skinMapper);
//get an outline
vtkOutlineFilter *outLineData = vtkOutlineFilter::New();
outLineData->SetInput(v16->GetOutput());
vtkPolyDataMapper* mapOutline = vtkPolyDataMapper::New();
mapOutline->SetInput(outLineData->GetOutput());
vtkActor *outline = vtkActor::New();
outline->SetMapper(mapOutline);
outline->GetProperty()->SetColor(0,0,0);
//create a camera with the correct view up
vtkCamera * aCamera = vtkCamera::New();
aCamera->SetViewUp(0,0,-1);
aCamera->SetPosition(0,1,0);
aCamera->SetFocalPoint(0,0,0);
aCamera->ComputeViewPlaneNormal();
//tell the renderer our camera and actors
aRenderer->AddActor(outline);
aRenderer->AddActor(skin);
aRenderer->SetActiveCamera(aCamera);
aRenderer->ResetCamera();
aRenderer->SetBackground(1,1,1);
//interact with data
renWin->Render();
iren->Start();
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20020329/555dd9e1/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vtk_head_1.jpg
Type: image/jpeg
Size: 16735 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20020329/555dd9e1/attachment.jpg>
More information about the vtkusers
mailing list