ÌÌÌÌHi Luis,<br><br>In the CMakeLists.txt you sent me, I just changed the name of the files to &quot;threshold&quot; since I have &quot;threshold.cxx&quot; as my file name, and added the following lines similar to those in th CMakeLists.txt of the &quot;/Examples/Segmentation&quot; directory instead of the last two lines originally written:<br>


<br>ADD_EXECUTABLE(threshold threshold.cxx )<br>TARGET_LINK_LIBRARIES(threshold ITKNumerics ITKIO)<br><br>As in the original case, I got the following message when I tried to &quot;configure&quot; and also written in CMake was an error relating line12.<br>


<br><i>Error in configuration process, project files may be invalid<br><br></i>Now, I have made a &quot;configure&quot; and &quot;generate&quot; successfully.<br><br>In this file, I&#39;m trying to replace the &quot;CurvatureImageFlowFilter&quot; with the &quot;Anisotropic diffusion&quot; filter from the &quot;itkSoftwareGuide&quot; (under section 6.7.3) and followed the steps on how to include it in the program.<br>

<br>The step left now is, how can test this filter on an .mha image?<br><br>I have attached the two files just to confirm if I have inserted the filter correct.<br><br>I know my questions may be basic but since I&#39;m totally new seems a bit confusing at the beginning.<br>

<br>I really appreciate your kind patience and efforts.<br><br>Thanks a lot.<br><br>Abder-Rahman<br>
<br><br><div class="gmail_quote">On Sat, Mar 24, 2012 at 10:23 PM, Luis Ibanez <span dir="ltr">&lt;<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Hi Abder,<br>
<br>
Here is below the content that you<br>
need to put in the CMakeLists.txt file.<br>
<br>
Also attached for your convenience.<br>
<br>
    Luis<br>
<br>
--<br>
<br>
cmake_minimum_required(VERSION 2.8)<br>
if(COMMAND CMAKE_POLICY)<br>
  cmake_policy(SET CMP0003 NEW)<br>
endif(COMMAND CMAKE_POLICY)<br>
<br>
project(ConnectedThreshold)<br>
<br>
find_package(ITK REQUIRED)<br>
include(${ITK_USE_FILE})<br>
<br>
add_executable(ConnectedThreshold ConnectedThresholdImageFilter.cxx )<br>
target_link_libraries(ConnectedThreshold ${ITK_LIBRARIES})<br>
<br>
<br>
<br>
=================================================================<br>
On Sat, Mar 24, 2012 at 6:13 PM, Abder-Rahman Ali<br>
<div><div></div><div>&lt;<a href="mailto:abder.rahman.ali@gmail.com" target="_blank">abder.rahman.ali@gmail.com</a>&gt; wrote:<br>
&gt; Thanks so much Luis. That really helps.<br>
&gt;<br>
&gt; I&#39;m a bit new to this, and now trying to run a filter, say for example, the<br>
&gt; &quot;Examples/Segmentation/ConnectedThresholdImageFilter.cxx&quot;. I tried to use<br>
&gt; CMake after copying this file along with the CMakeLists.txt to a new<br>
&gt; directory. I made the new directory (i.e; NewDir) as &quot;source&quot; and the<br>
&gt; &quot;build&quot; as (i.e; NewDirBin).<br>
&gt;<br>
&gt; When I try to &quot;generate&quot;, I get the following message: Error in generation<br>
&gt; process, project files may be invalid<br>
&gt;<br>
&gt; So, the bottom line is, how can I test this filter?<br>
&gt;<br>
&gt; Thanks a lot.<br>
&gt;<br>
&gt; Abder-Rahman<br>
&gt;<br>
&gt;<br>
&gt; On Sat, Mar 24, 2012 at 9:58 PM, Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Mar 24, 2012 at 2:19 PM, Abder-Rahman Ali<br>
&gt;&gt; &lt;<a href="mailto:abder.rahman.ali@gmail.com" target="_blank">abder.rahman.ali@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; So, in your modifications, I should REMOVE what has &quot;-&quot; and ADD what has<br>
&gt;&gt; &gt; &quot;+&quot;.<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; Yes.<br>
&gt;&gt;<br>
&gt;&gt; This is the typical format that you will<br>
&gt;&gt; see when you do a diff between two files.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt; * For, the following:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; smoothing-&gt;SetTimeStep( 0.025 );<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Why did you add ( 0.025 ) and not ( 0.125 )<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; Because when you go from 2D to 3D the computation<br>
&gt;&gt; of the time step in the smoothing filter needs to be<br>
&gt;&gt; adjusted. Otherwise you will get a warning about the<br>
&gt;&gt; time step at 0.125 being unstable in 3D.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt; * For the following:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; -  const InternalPixelType lowerThreshold = atof( argv[5] );<br>
&gt;&gt; &gt; -  const InternalPixelType upperThreshold = atof( argv[6] );<br>
&gt;&gt; &gt; +  const InternalPixelType lowerThreshold = atof( argv[6] );<br>
&gt;&gt; &gt; +  const InternalPixelType upperThreshold = atof( argv[7] );<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Why had you to remove the first two lines and add [6] &amp; [7]?<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; Because the insertion of the seedZ argument<br>
&gt;&gt; in the command line displaces the two last<br>
&gt;&gt; arguments by one.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &gt; Thanks a lot, and appreciate your kind efforts.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Abder-Rahman<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Sat, Mar 24, 2012 at 4:56 PM, Luis Ibanez &lt;<a href="mailto:luis.ibanez@kitware.com" target="_blank">luis.ibanez@kitware.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi Abder-Rahman,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Please find below the diffs that you have to apply to<br>
&gt;&gt; &gt;&gt; this example in order to make it work for 3D images.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   Thanks<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;       Luis<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; diff --git a/Examples/Segmentation/ConnectedThresholdImageFilter.cxx<br>
&gt;&gt; &gt;&gt; b/Examples/Segmentation/ConnectedThresholdImageFilter.cxx<br>
&gt;&gt; &gt;&gt; index 5fdfb24..38ef54c 100644<br>
&gt;&gt; &gt;&gt; --- a/Examples/Segmentation/ConnectedThresholdImageFilter.cxx<br>
&gt;&gt; &gt;&gt; +++ b/Examples/Segmentation/ConnectedThresholdImageFilter.cxx<br>
&gt;&gt; &gt;&gt; @@ -95,11 +95,11 @@<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;  int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt;  {<br>
&gt;&gt; &gt;&gt; -  if( argc &lt; 7 )<br>
&gt;&gt; &gt;&gt; +  if( argc &lt; 8 )<br>
&gt;&gt; &gt;&gt;     {<br>
&gt;&gt; &gt;&gt;     std::cerr &lt;&lt; &quot;Missing Parameters &quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt;     std::cerr &lt;&lt; &quot;Usage: &quot; &lt;&lt; argv[0];<br>
&gt;&gt; &gt;&gt; -    std::cerr &lt;&lt; &quot; inputImage  outputImage seedX seedY lowerThreshold<br>
&gt;&gt; &gt;&gt; upperThreshold&quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt; +    std::cerr &lt;&lt; &quot; inputImage  outputImage seedX seedY seedZ<br>
&gt;&gt; &gt;&gt; lowerThreshold upperThreshold&quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt;     return 1;<br>
&gt;&gt; &gt;&gt;     }<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; @@ -114,7 +114,7 @@ int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   // Software Guide : BeginCodeSnippet<br>
&gt;&gt; &gt;&gt;   typedef   float           InternalPixelType;<br>
&gt;&gt; &gt;&gt; -  const     unsigned int    Dimension = 2;<br>
&gt;&gt; &gt;&gt; +  const     unsigned int    Dimension = 3;<br>
&gt;&gt; &gt;&gt;   typedef itk::Image&lt; InternalPixelType, Dimension &gt;<br>
&gt;&gt; &gt;&gt;  InternalImageType;<br>
&gt;&gt; &gt;&gt;   // Software Guide : EndCodeSnippet<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; @@ -217,7 +217,7 @@ int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   // Software Guide : BeginCodeSnippet<br>
&gt;&gt; &gt;&gt;   smoothing-&gt;SetNumberOfIterations( 5 );<br>
&gt;&gt; &gt;&gt; -  smoothing-&gt;SetTimeStep( 0.125 );<br>
&gt;&gt; &gt;&gt; +  smoothing-&gt;SetTimeStep( 0.025 );<br>
&gt;&gt; &gt;&gt;   // Software Guide : EndCodeSnippet<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; @@ -235,8 +235,8 @@ int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt;   //<br>
&gt;&gt; &gt;&gt;   //  Software Guide : EndLatex<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; -  const InternalPixelType lowerThreshold = atof( argv[5] );<br>
&gt;&gt; &gt;&gt; -  const InternalPixelType upperThreshold = atof( argv[6] );<br>
&gt;&gt; &gt;&gt; +  const InternalPixelType lowerThreshold = atof( argv[6] );<br>
&gt;&gt; &gt;&gt; +  const InternalPixelType upperThreshold = atof( argv[7] );<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   // Software Guide : BeginCodeSnippet<br>
&gt;&gt; &gt;&gt;   connectedThreshold-&gt;SetLower(  lowerThreshold  );<br>
&gt;&gt; &gt;&gt; @@ -275,6 +275,7 @@ int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   index[0] = atoi( argv[3] );<br>
&gt;&gt; &gt;&gt;   index[1] = atoi( argv[4] );<br>
&gt;&gt; &gt;&gt; +  index[2] = atoi( argv[5] );<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;   // Software Guide : BeginCodeSnippet<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; ---------------------------------<br>
&gt;&gt; &gt;&gt; On Sat, Mar 24, 2012 at 11:14 AM, Abder-Rahman Ali<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:abder.rahman.ali@gmail.com" target="_blank">abder.rahman.ali@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; Hello,<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I just have a question and thought you may have an idea on it.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Inside the `InsightToolkit` directory there is the<br>
&gt;&gt; &gt;&gt; &gt; `Examples/Segmentation/ConnectedThresholdImageFilter.xx` file.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Now, I want to make it operate on a three dimensional image. In this<br>
&gt;&gt; &gt;&gt; &gt; case,<br>
&gt;&gt; &gt;&gt; &gt; will the changes that I have to do bee applied to those lines of code<br>
&gt;&gt; &gt;&gt; &gt; (lines<br>
&gt;&gt; &gt;&gt; &gt; 102-110):<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;     int main( int argc, char *argv[])<br>
&gt;&gt; &gt;&gt; &gt;     {<br>
&gt;&gt; &gt;&gt; &gt;       if( argc &lt; 7 )<br>
&gt;&gt; &gt;&gt; &gt;         {<br>
&gt;&gt; &gt;&gt; &gt;         std::cerr &lt;&lt; &quot;Missing Parameters &quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt; &gt;         std::cerr &lt;&lt; &quot;Usage: &quot; &lt;&lt; argv[0];<br>
&gt;&gt; &gt;&gt; &gt;         std::cerr &lt;&lt; &quot; inputImage  outputImage seedX seedY<br>
&gt;&gt; &gt;&gt; &gt; lowerThreshold<br>
&gt;&gt; &gt;&gt; &gt; upperThreshold&quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt; &gt;         return 1;<br>
&gt;&gt; &gt;&gt; &gt;         }<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; And, in order to do that, should I add the following `seedZ` to:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;     std::cerr &lt;&lt; &quot; inputImage  outputImage seedX seedY lowerThreshold<br>
&gt;&gt; &gt;&gt; &gt; upperThreshold&quot; &lt;&lt; std::endl;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; And, what change should I perform to the arguments in this case?<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thanks a lot and apologize for my disturbance.<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Abder-Rahman<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>