Hi all:<br><br>I am trying to extract a region of interest in a image<br>and using its output as the input of Gradient Filter.<br><br>Therefore, the RegionOfInterestImageFilter is used to extract region<br>and GradientMagnitudeRecursiveGaussianImageFilter used to count gradient.
<br><br>but an unknown erorr is occurrence and my program crashed.<br><br>My program is following:<br><br>&nbsp;&nbsp;&nbsp; typedef&nbsp;&nbsp;&nbsp; float&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternalPixelType;<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; InternalPixelType, 3&gt;&nbsp; InternalImageType;
<br><br>&nbsp;&nbsp;&nbsp; typedef&nbsp;&nbsp;&nbsp; signed short&nbsp;&nbsp;&nbsp; OutputPixelType;<br>&nbsp;&nbsp;&nbsp; typedef itk::Image&lt; OutputPixelType, 3&gt;&nbsp;&nbsp;&nbsp; ExternalImageType;<br><br>&nbsp;&nbsp;&nbsp; typedef itk::RescaleIntensityImageFilter&lt;ExternalImageType, InternalImageType&gt; InputCastType;
<br>&nbsp;&nbsp;&nbsp; InputCastType::Pointer m_Cast1;<br><br>&nbsp;&nbsp;&nbsp; m_Cast1-&gt;SetInput( &nbsp;&nbsp; an itk::Image that has ExternalImageType&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; m_Cast1-&gt;SetOutputMinimum(0);<br>&nbsp;&nbsp;&nbsp; m_Cast1-&gt;SetOutputMaximum( 255 );<br><br>&nbsp;&nbsp;&nbsp; m_Cast1-&gt;Update();&nbsp;&nbsp;&nbsp; 
<br><br>&nbsp;&nbsp;&nbsp; typedef itk::RegionOfInterestImageFilter<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt; InternalImageType , InternalImageType &gt; FilterType;<br><br>&nbsp;&nbsp;&nbsp; FilterType::Pointer ROI1= FilterType::New();<br><br>&nbsp;&nbsp;&nbsp; InternalImageType::IndexType start;
<br>&nbsp;&nbsp;&nbsp; start[0] = m_ROIxmin;<br>&nbsp;&nbsp;&nbsp; start[1] = m_ROIymin;<br>&nbsp;&nbsp;&nbsp; start[2] = m_ROIzmin;<br><br>&nbsp;&nbsp;&nbsp; InternalImageType::SizeType size;<br>&nbsp;&nbsp;&nbsp; size[0] = m_ROIxmax-m_ROIxmin+1;<br>&nbsp;&nbsp;&nbsp; size[1] = m_ROIymax-m_ROIymin+1;<br>&nbsp;&nbsp;&nbsp; size[2] = m_ROIzmax-m_ROIzmin+1;
<br><br>&nbsp;&nbsp;&nbsp; InternalImageType::RegionType desiredRegion;<br>&nbsp;&nbsp;&nbsp; desiredRegion.SetSize(&nbsp; size&nbsp; );<br>&nbsp;&nbsp;&nbsp; desiredRegion.SetIndex( start );<br><br>&nbsp;&nbsp;&nbsp; ROI1-&gt;SetRegionOfInterest( desiredRegion );<br>&nbsp;&nbsp;&nbsp; ROI1-&gt;SetInput(m_Cast1-&gt;GetOutput());
<br>&nbsp;&nbsp;&nbsp; ROI1-&gt;Update();<br><br>&nbsp;&nbsp;&nbsp; typedef itk::&lt; InternalImageType,InternalImageType &gt;&nbsp; GradientFilterType;<br><br>&nbsp;&nbsp;&nbsp; GradientFilterType::Pointer&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; gradientMagnitude = GradientFilterType::New();<br><br>&nbsp;&nbsp;&nbsp; gradientMagnitude-&gt;SetSigma(&nbsp; 1 );
<br>&nbsp;&nbsp;&nbsp; gradientMagnitude-&gt;SetInput( ROI1-&gt;GetOutput() );<br>&nbsp;&nbsp;&nbsp; gradientMagnitude-&gt;Update();<br><br><br>Regards :)<br><br><br><br>