<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Thank you Cory,<br>
<br>
I implemented the vtkThreshold today, now it is working fine.<br>
<br>
Imre<br>
<br>
<div class="moz-cite-prefix">Am 06.12.2015 um 16:22 schrieb Cory
Quammen:<br>
</div>
<blockquote
cite="mid:CAB5Fpx63-a8GCmrDgJwfGQ95Q2XT-Q3Aa2DeHS22fmU_Lpv9qA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Sat, Dec 5, 2015 at 1:15 PM, Imre
Goretzki <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:goretzki.imre@gmail.com" target="_blank">goretzki.imre@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hey
guys,<br>
<br>
I have a question about the "GenerateValues" method of
MarchingCubes. My image has several points that have
intensity values that lie between 928 and 1600.<br>
<br>
My understand of<br>
<br>
int idxContour = 1;<br>
double from = 920;<br>
double to = 930;<br>
<br>
ImageToVTKImageFilter con = ...<br>
<br>
marchingCube->setInputData(con->GetOutput());<br>
marchingCube->GenerateValues(idxContour, from, to);<br>
marchingCube->Update();<br>
<br>
is that the algorithm will take all points that have an
intensity value that lies between 920 and 930. These
points are combined to one contour. Via MATLAB and ITK's
histogram I can validate the amout of points that have a
specific intensity value. </blockquote>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> </blockquote>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">If
I plot the points that were generated by marching cubes, I
do not get all of them (I cannot see all of them), e.g.<br>
the histogram says that there are about 200000 points that
have an intensity value 928. If I use 928 as the lower
bound for the GenerateValues method, there are just some
of them plotted - approximately.<br>
<br>
Is my understanding of GenerateValues correct?<br>
</blockquote>
<div> </div>
<div>
<div>Not exactly. vtkMarchingCubes will extract individual
isocontours - surfaces that represent the locations in a
dataset with a particular value. vtkMarchingCubes and
other isocontour filters in VTK can generate surfaces
from more than one isovalue. GenerateValues() is a
convenience function to specify a range of isovalues.</div>
<div><br>
</div>
<div>A vtkThreshold filter will extract all points in the
dataset in a value range and may be what you want.</div>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Next
question: (more than 1 contour)<br>
<br>
If I want to generate more than 1 contour. How do I
initialize the marchingCube and, more interesting, how do
I get the output of a specific contour. I'm thinking about
the following:<br>
<br>
<br>
marchingCube->SetNumberOfContours(2);<br>
marchingCube->GenerateValues(1, from_1, to_1);<br>
marchingCube->GenerateValues(2, from_2, to_2);<br>
<br>
vtkSmartPointer<vtkOutlineFilter> outline =
vtkSmartPointer<vtkOutlineFilter>::New();<br>
outline->SetInputConnection(marchingCube->GetOutput(1));<br>
<br>
vtkSmartPointer<vtkPolyDataMapper> outlineMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();<br>
outlineMapper->SetInputConnection(outline->GetOutputPort());<br>
<br>
vtkSmartPointer<vtkPolyDataMapper> data1 =
vtkSmartPointer<vtkPolyDataMapper>::New();<br>
data1->SetInputConnection(marchingCube->GetOutput(1));<br>
<br>
vtkSmartPointer<vtkPolyDataMapper> data2 =
vtkSmartPointer<vtkPolyDataMapper>::New();<br>
data2->SetInputConnection(marchingCube->GetOutput(2));<br>
<br>
I know that the above lines are not working like this, but
I actually do not know how to do that. Right now I have 2
marchingCube instances that do the work for data1/data2
but that should not do the trick.<br>
</blockquote>
<div><br>
</div>
<div>You can't set up two different isocontour surfaces and
get two different outputs this way. Using two separate
vtkMarchingCubes instances is the right way to go.</div>
<div><br>
</div>
<div>HTH,</div>
<div>Cory</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
I hope you can help me<br>
<br>
Greetings<br>
Imre<br>
_______________________________________________<br>
Powered by <a moz-do-not-send="true"
href="http://www.kitware.com" rel="noreferrer"
target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a
moz-do-not-send="true"
href="http://www.kitware.com/opensource/opensource.html"
rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a></a><br>
<br>
Please keep messages on-topic and check the VTK FAQ at: <a
moz-do-not-send="true"
href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer"
target="_blank"><a class="moz-txt-link-freetext" href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a></a><br>
<br>
Search the list archives at: <a moz-do-not-send="true"
href="http://markmail.org/search/?q=vtkusers"
rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a moz-do-not-send="true"
href="http://public.kitware.com/mailman/listinfo/vtkusers"
rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div class="gmail_signature">Cory Quammen<br>
R&D Engineer<br>
Kitware, Inc.</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>