<div dir="ltr">What is the image dimension set to?</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 19, 2013 at 10:09 AM, donyyo <span dir="ltr"><<a href="mailto:donyyo@gmail.com" target="_blank">donyyo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
I want to convert polydata contour to image following the example (<br>
http://<a href="http://www.vtk.org/Wiki/VTK/Examples/PolyData/PolyDataToImageData" target="_blank">http://www.vtk.org/Wiki/VTK/Examples/PolyData/PolyDataToImageData</a><br>
<http://<a href="http://www.vtk.org/Wiki/VTK/Examples/PolyData/PolyDataToImageData" target="_blank">http://www.vtk.org/Wiki/VTK/Examples/PolyData/PolyDataToImageData</a>><br>
and<br>
http://<a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataContourToImageData" target="_blank">http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataContourToImageData</a><br>
<http://<a href="http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataContourToImageData" target="_blank">http://www.vtk.org/Wiki/VTK/Examples/Cxx/PolyData/PolyDataContourToImageData</a>><br>
). There are many parts in the contour (left image). However, the topology<br>
in the image I got was wrong (right image). What can I do?<br>
<br>
<<a href="http://vtk.1045678.n5.nabble.com/file/n5722850/image1.png" target="_blank">http://vtk.1045678.n5.nabble.com/file/n5722850/image1.png</a>><br>
<br>
modelPolyData->GetCenter(cutPlaneOrigin);<br>
cutPlaneOrigin[2] = firstImageNum+ii;<br>
vtkPlane *cutPlane = vtkPlane::New();<br>
cutPlane->SetOrigin(cutPlaneOrigin);<br>
cutPlane->SetNormal(0, 0, 1);<br>
<br>
vtkCutter *cutter = vtkCutter::New();<br>
cutter->SetInput(modelPolyData);<br>
cutter->SetCutFunction(cutPlane);<br>
<br>
vtkStripper *stripper = vtkStripper::New();<br>
stripper->SetInputConnection(cutter->GetOutputPort());<br>
stripper->Update();<br>
<br>
cutContourPolyData = stripper->GetOutput();<br>
<br>
double cutContourBounds[6];<br>
cutContourPolyData->GetBounds(cutContourBounds);<br>
<br>
// Prepare the binary image's voxel grid.<br>
double imageResolution[3] = {1.0, 1.0, 1.0};<br>
imageData->SetSpacing(imageResolution);<br>
<br>
// Compute dimensions.<br>
vtkImageData *imageData = vtkImageData::New();<br>
imageData->SetDimensions(imageDimension);<br>
imageData->SetExtent(0, imageDimension[0]-1, 0, imageDimension<br>
<br>
[1]-1, 0, imageDimension[2]-1);<br>
<br>
imageOrigin[2] = cutContourBounds[4];<br>
imageData->SetOrigin(imageOrigin);<br>
imageData->SetScalarTypeToUnsignedChar();<br>
imageData->AllocateScalars();<br>
<br>
// Fill the image with foreground voxels.<br>
for (vtkIdType i = 0; i < imageData->GetNumberOfPoints(); i++)<br>
imageData->GetPointData()->GetScalars()->SetTuple1(i, 255);<br>
<br>
// polygonal data --> image stencil:<br>
vtkPolyDataToImageStencil *pol2stenc =<br>
<br>
vtkPolyDataToImageStencil::New();<br>
pol2stenc->SetTolerance(0);<br>
pol2stenc->SetInput(cutContourPolyData);<br>
pol2stenc->SetOutputOrigin(imageOrigin);<br>
pol2stenc->SetOutputSpacing(imageResolution);<br>
pol2stenc->SetOutputWholeExtent(imageData->GetExtent());<br>
pol2stenc->Update();<br>
<br>
// Cut the corresponding white image and set the background.<br>
vtkImageStencil *imgstenc = vtkImageStencil::New();<br>
imgstenc->SetInput(imageData);<br>
imgstenc->SetStencil(pol2stenc->GetOutput());<br>
imgstenc->ReverseStencilOff();<br>
imgstenc->SetBackgroundValue(0);<br>
imgstenc->Update();<br>
<br>
// Output image.<br>
imageNum = 10000+firstImageNum+ii;<br>
cout << "imageNum = " << imageNum << endl;<br>
logFile << "imageNum = " << imageNum << endl;<br>
ostringstream outputImageStringStream;<br>
outputImageStringStream << imageNum;<br>
outputImageNumStr = outputImageStringStream.str();<br>
cout << "outputImageNumStr = " << outputImageNumStr.c_str() <<<br>
<br>
endl;<br>
logFile << "outputImageNumStr = " << outputImageNumStr.c_str()<br>
<br>
<< endl;<br>
outputImageFileName = modelName<br>
<br>
+"-"+outputImageNumStr.substr(1, outputImageNumStr.size()-<br>
<br>
1)+"."+outputImageFormat;<br>
outputImageFilePathName = outputImageFilePath<br>
<br>
+outputImageFileName;<br>
if (outputImageFormat == "tif")<br>
{<br>
tiffWriter->SetFileName(outputImageFilePathName.c_str());<br>
tiffWriter->SetInputConnection(imgstenc->GetOutputPort());<br>
tiffWriter->Write();<br>
outputImageIndexFile << outputImageFileName.c_str() << endl;<br>
}<br>
if (outputImageFormat == "png")<br>
{<br>
pngWriter->SetFileName(outputImageFilePathName.c_str());<br>
pngWriter->SetInputConnection(imgstenc->GetOutputPort());<br>
pngWriter->Write();<br>
outputImageIndexFile << outputImageFileName.c_str() << endl;<br>
}<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Topology-problem-in-converting-polydata-to-image-tp5722850.html" target="_blank">http://vtk.1045678.n5.nabble.com/Topology-problem-in-converting-polydata-to-image-tp5722850.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Unpaid intern in BillsBasement at noware dot com<br>
</div>