Hi Jan,<div><br></div><div>if you think the bug 10447 should be closed as invalid, I can do it. However, I had a problem with this example (bug 10799), which occurs only on x64 architecture.</div><div><br></div><div>Regards,</div>
<div>Dženan<br><br><div class="gmail_quote">On Tue, Jul 27, 2010 at 17:38,  <span dir="ltr">&lt;<a href="mailto:J.Menssen@cukz.umcn.nl">J.Menssen@cukz.umcn.nl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dear Dan<br>
<br>
Thank you for your suggestions<br>
<br>
I agree with you to add an example that reproduces the issue. It was my intention to add the modified<br>
DeformableModelApplication.cxx file from the InsightApplications example &quot;DeformableModelSimplexMesh&quot; but I didn&#39;t know it was possible to include an attached file<br>
Therefore I described the changes to the original file, because the problem arises in a standard Insight Applications example/program, I hoped this was clear enough.<br>
Now I attached the modified &quot;DeformableModelApplication&quot;, replacing the original with this modified on should reproduce the problem. (Lines 528-527 are modified, comments are added)<br>
I also include the CmakeList.txt file, however it is the standard one generated for this standard ÏnsightApplications example &quot;DeformableSimplexMesh. Also all other code in this examples is used unmodified.<br>
<br>
Indeed this described issue is related to bug 10447. However I posted bug 10447 some months ago. Now I&#39;m not sure anymore my suggested solution of that bug is right.<br>
<br>
The &quot;map/set iterator not dereferencable&quot; occurs in iktMapContainer::GetElement. Checking m_SimplexMesh (of simplexMesh2)just before the crash shows that m_Geometry data has no elements. Maybe this is due to the fact it’s dereferences (unregistered) somewhere. Copying the m_Geometry data maybe the solution<br>

<br>
Due to the fact bug 10447 is still unassigned, and maybe the suggestion solution in that posted bug is not the correct one, I reported a new bug (11017) with a more general description.<br>
<br>
I hope the bug will be assigned and solved<br>
<br>
Thank you again for your suggestion, maybe this will help to solve my problem<br>
<br>
Kind regards<br>
<br>
Jan<br>
<div class="im"><br>
<br>
-----Original Message-----<br>
From: Dan Mueller [mailto:<a href="mailto:dan.muel@gmail.com">dan.muel@gmail.com</a>]<br>
Sent: dinsdag 27 juli 2010 16:21<br>
To: Menssen, Jan<br>
Cc: <a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br>
</div><div><div></div><div class="h5">Subject: Re: [Insight-users] bug in DeformableModelSimplexMesh ?<br>
<br>
Hi Jan,<br>
<br>
A suggestion: in general, community which monitors this list is very<br>
helpful, but also very busy. If you want your problem resolved you<br>
have to make it as easy as possible for someone to (1) understand the<br>
problem, (2) reproduce the problem.<br>
<br>
The best way to achieve this is to provide a minimal example which<br>
reproduces the issue: a CMakeLists.txt and single C++ source file.<br>
<br>
In my own experience, the very act of preparing such an example can<br>
sometimes reveal the issue!<br>
<br>
Suggestion aside: do you think the issue you describe could be related<br>
to bug 10447 you previously submitted? It sounds similar...<br>
    <a href="http://public.kitware.com/Bug/view.php?id=10447" target="_blank">http://public.kitware.com/Bug/view.php?id=10447</a><br>
<br>
Cheers, Dan<br>
<br>
On 27 July 2010 14:37,  &lt;<a href="mailto:J.Menssen@cukz.umcn.nl">J.Menssen@cukz.umcn.nl</a>&gt; wrote:<br>
&gt; Dear Dzenan<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; As you proposed in your mail, we created an unnamed block and created a new<br>
&gt; deform filter from scratch<br>
&gt;<br>
&gt; We instantiate the filter and set all parameters<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; However, this modification results in the same error message as described<br>
&gt; below<br>
&gt;<br>
&gt; So our problem is not yet solved<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Thank you for your time, kind regards<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Jan Menssen<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; From: Dženan Zukić [mailto:<a href="mailto:dzenanz@gmail.com">dzenanz@gmail.com</a>]<br>
&gt; Sent: donderdag 22 juli 2010 14:56<br>
&gt; To: Menssen, Jan<br>
&gt; Cc: <a href="mailto:insight-users@itk.org">insight-users@itk.org</a>; Nillesen, Maartje<br>
&gt; Subject: Re: [Insight-users] bug in DeformableModelSimplexMesh ?<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I discovered few weeks back, that you cannot just change input mesh for<br>
&gt; deform filter, that is<br>
&gt;<br>
&gt; m_DeformFilter-&gt;SetInput(m_SimplexMesh);<br>
&gt;<br>
&gt; this line is a problem. The workaround I used was to create unnamed block<br>
&gt; and create a new deform filter from scratch (instantiate filter and set a<br>
&gt; bunch of parameters) instead of just setting setting input mesh and calling<br>
&gt; update.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Regards,<br>
&gt;<br>
&gt; Dženan<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Jul 21, 2010 at 11:37, &lt;<a href="mailto:J.Menssen@cukz.umcn.nl">J.Menssen@cukz.umcn.nl</a>&gt; wrote:<br>
&gt;<br>
&gt; Dear All<br>
&gt;<br>
&gt; We are working on a segmentation algorithm using deformable models with a<br>
&gt; refine mesh. The deformation and refinement is done  in a for loop. Our<br>
&gt; application is based on the DeformableModel application as given in the<br>
&gt; InsightApplications example DeformableModelSimplexMesh.<br>
&gt;<br>
&gt; We modified the for loop in de DeformMesh method<br>
&gt; (DeformableModelApplication.cxx) with a refinement of the mesh, but this<br>
&gt; crashes. Below a part of (pseudo) code is given..<br>
&gt;<br>
&gt;      for i=1:i&lt;nr_iterations;i++<br>
&gt;<br>
&gt;    {<br>
&gt;<br>
&gt;       m_simplexMesh-&gt;DisconnectPipeline()<br>
&gt;<br>
&gt;       m_deformFilter-SetInput(m_simplexMesh);<br>
&gt;<br>
&gt;       m_deformFilter-&gt;Update(0;<br>
&gt;<br>
&gt;       simplexMesh2 = m_deformFilter-&gt;GetOutput();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;       m_refineMesh-&gt;SetInput(simplexMesh2);<br>
&gt;<br>
&gt;       m_refineMesh-&gt;Update();<br>
&gt;<br>
&gt;       m_simplexMesh=m_refineMesh-&gt;GetOutput();<br>
&gt;<br>
&gt;   }<br>
&gt;<br>
&gt; m_deformFilter is a DeformableSimplexMesh3DGradientConstraintForceFilter,<br>
&gt;<br>
&gt; m_RefineMesh is a  itkSimplexMeshAdaptTopologyFilter<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; To isolate the bug, we started with a little modification of the DeformMesh<br>
&gt; method in DeformableModelApplication.cxx. The modifications are given below<br>
&gt; (line 522 in original file, InsightApplciations 3.16). Running this code<br>
&gt; results also in a crash<br>
&gt;<br>
&gt; *----------------------------------------------------------------------------------------------------------------------------------------<br>
&gt;<br>
&gt; SimplexMeshType::Pointer simplexMesh2 = m_SimplexMesh;<br>
&gt;<br>
&gt; const unsigned int numberOfIterationsToGo =<br>
&gt; atoi(m_IterationsValueInput-&gt;value());<br>
&gt;<br>
&gt; for( unsigned int i=0; i&lt;numberOfIterationsToGo; i++ )<br>
&gt;<br>
&gt; {<br>
&gt;<br>
&gt;       std::cout &lt;&lt; &quot; Iteration   &quot; &lt;&lt; i &lt;&lt; std::endl;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; //* -------------- start modified code<br>
&gt; -------------------------------------------<br>
&gt;<br>
&gt;         // THIS IS MODIFIED CODE THAT (WE THINK) DOESN&#39;T VIOLATE THE ITK<br>
&gt; RULES BUT THIS<br>
&gt;<br>
&gt;  // CODE CRASHES<br>
&gt;<br>
&gt;                         m_SimplexMesh-&gt;DisconnectPipeline();<br>
&gt;<br>
&gt;                         m_DeformFilter-&gt;SetInput(m_SimplexMesh);<br>
&gt;<br>
&gt;                         m_DeformFilter-&gt;SetIterations(1);<br>
&gt;<br>
&gt;                         m_DeformFilter-&gt;Update();<br>
&gt;<br>
&gt;                         simplexMesh2 = m_DeformFilter-&gt;GetOutput();<br>
&gt;<br>
&gt;                         SimplexMesh2-&gt;DisconnectPipeline(0<br>
&gt;<br>
&gt; m_DeformFilter-&gt;SetInput(simplexMesh2);<br>
&gt;<br>
&gt;                         m_DeformFilter-&gt;SetIterations(1);<br>
&gt;<br>
&gt;                         m_DeformFilter-&gt;Update();<br>
&gt;<br>
&gt;                         m_SimplexMesh = m_DeformFilter-&gt;GetOutput();<br>
&gt;<br>
&gt; // --------------------- end modified code<br>
&gt; -------------------------------------- */<br>
&gt;<br>
&gt;       m_SimplexMeshToShow  = m_SimplexMesh;<br>
&gt;<br>
&gt;       this-&gt;RefreshMeshVisualization();<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;       // force a redraw<br>
&gt;<br>
&gt;       axialView-&gt;redraw();<br>
&gt;<br>
&gt;       coronalView-&gt;redraw();<br>
&gt;<br>
&gt;       sagittalView-&gt;redraw();<br>
&gt;<br>
&gt;       surfaceView-&gt;redraw();<br>
&gt;<br>
&gt;       Fl::check();<br>
&gt;<br>
&gt;  }<br>
&gt;<br>
&gt; *-------------------------------------------------------------------------------------------------------------------------------------------<br>
&gt;<br>
&gt; Error message (using Visual Studio 2005 and/or 2008) of the crash<br>
&gt;<br>
&gt; Debug Assertion Failed !<br>
&gt;<br>
&gt;         Expression map/set iterator not dereferencable<br>
&gt;<br>
&gt; Do we something wrong?  Using a for loop in a pipeline is dangerous but in<br>
&gt; bug 0001080, we read it’s possible to use a for loop. Also at the Old Nabble<br>
&gt; forum  I read a message that is must be possible to use a for loop.<br>
&gt; (<a href="http://old.nabble.com/Using-image-iterators-combined-with-filters-in-a-loop-td28684443.html" target="_blank">http://old.nabble.com/Using-image-iterators-combined-with-filters-in-a-loop-td28684443.html</a>)<br>

&gt;<br>
&gt; Even if we changed the code in the original example<br>
&gt; DeformableModelApplication according to the above  referenced Old Nabble<br>
&gt; article the application crashes (see below)<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; m_DeformFilter-&gt;SetInput( m_SimplexMesh );<br>
&gt;<br>
&gt;       m_DeformFilter-&gt;SetIterations(1);<br>
&gt;<br>
&gt;       m_DeformFilter-&gt;Update();<br>
&gt;<br>
&gt;       m_SimplexMesh =  m_DeformFilter-&gt;GetOutput();<br>
&gt;<br>
&gt;         m_SimplexMesh-&gt;DisconnectPipeline();<br>
&gt;<br>
&gt; So is there a bug in the original ITK sources? As far as we now, ITK doesn’t<br>
&gt; allow to change the input of a filter and we think this is what happened in<br>
&gt; the original DeformableSimplexMesh application.<br>
&gt;<br>
&gt; Can someone help us with our problem ?<br>
&gt;<br>
&gt; We tested with ITK 2.8, ITK 3.16 and 3.18 and all crashes<br>
&gt;<br>
&gt;  Jan Menssen<br>
&gt; Research assistant<br>
&gt;<br>
&gt; Radboud University Nijmegen Medical Centre<br>
&gt; Clinical Physics Lab - Peadiatrics<br>
&gt; Huispost 833, route 833<br>
&gt; P.O  box  9101<br>
&gt; 6500 HB Nijmegen<br>
&gt; Telefoon: +31 24 36 19063<br>
&gt; E-mail <a href="mailto:J.Menssen@cukz.umcn.nl">J.Menssen@cukz.umcn.nl</a><br>
&gt;<br>
&gt; <a href="http://www.umcn.nl" target="_blank">http://www.umcn.nl</a><br>
&gt;<br>
&gt; Het UMC St Radboud staat geregistreerd bij de Kamer van Koophandel in het<br>
&gt; handelsregister onder nummer 41055629.<br>
&gt; The Radboud University Nijmegen Medical Centre is listed in the Commercial<br>
&gt; Register of the Chamber of Commerce under file number 41055629.<br>
&gt;<br>
&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt; <a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Het UMC St Radboud staat geregistreerd bij de Kamer van Koophandel in het<br>
&gt; handelsregister onder nummer 41055629.<br>
&gt; The Radboud University Nijmegen Medical Centre is listed in the Commercial<br>
&gt; Register of the Chamber of Commerce under file number 41055629.<br>
&gt;<br>
&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt; <a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
Het UMC St Radboud staat geregistreerd bij de Kamer van Koophandel in het handelsregister onder nummer 41055629.<br>
The Radboud University Nijmegen Medical Centre is listed in the Commercial Register of the Chamber of Commerce under file number 41055629.<br>
</div></div><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<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.html" target="_blank">http://www.kitware.com/products/protraining.html</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br></div>