[Insight-users] LevelSetBasedCellSegmentation Crash
Humayun Irshad
humayun.irshad at gmail.com
Tue Apr 3 00:33:45 EDT 2012
Dear,
More precisely, i find the place of program crash which is line no 189 in
ImageToImageFilter file. The member inputPtrN is supposed to be NULL
because the dynamic_cast should fail, but it does not. Then the seeds are
consider as image input and it doesn't work properly.
Why this problem come and How can i solve this problem or prevent this
error?
---------- Forwarded message ----------
From: Humayun Irshad <humayun.irshad at gmail.com>
Date: Mon, Apr 2, 2012 at 1:45 PM
Subject: LevelSetBasedCellSegmentation Crash
To: Insight User <insight-users at itk.org>
Dear All,
I am using LevelSetBasedCellSegmentation filter to segment image. I give
Centroid (Seed Point) of candidate cells and grayscale image but it crash
during execution with this error:
itk::ExceptionObject (O1FDEDB0)
Location: "void __thiscall itk::ImageToImageFilter<class itk::Image<float,
2>, class itk::Image<float, 2> >::VerifyInputInformation(void)"
File:H:\itk\modules\core\common\include\itkImageToImageFilter.txx
GeodesicActiveContourLevelSetImageFilter(0359D700): Input do not occupy the
same physical space! InputImage origin: [-1.2000000e+001,
-1.20000000e+001], InputImageIndexedDataObject1 Origin: [1.2550000e+003,
4.80000000e+001] Tolerance: 1.0000000e-006
This code is here:
CharReaderType::Pointer charReader =
CharReaderType::New();
charReader->SetFileName( "image.bmp" );
try
{
charReader->Update();
}
catch (itk::ExceptionObject& excp)
{
std::cerr << "Err in Reading char image - Exception caught " << excp <<
std::endl;
return;
}
// 2 - Perform Image enhancment and Noise removal
CharImageSizeType meanRadius;
meanRadius.Fill(4);
MeanImageFilterType::Pointer mean = MeanImageFilterType::New();
mean->SetRadius( meanRadius );
mean->SetInput( charReader->GetOutput() );
// 3 - Perform Binary Thresholding
BinaryThresholdImageFilterType::Pointer threshold =
BinaryThresholdImageFilterType::New();
threshold->SetLowerThreshold( lowerThreshold );
threshold->SetUpperThreshold( upperThreshold );
threshold->SetOutsideValue( backgroundPixel );
threshold->SetInsideValue( foregroundPixel );
threshold->SetInput( mean->GetOutput() );
BinaryImageToLabelMapFilterType::Pointer
binaryImageToLabelMapFilter = BinaryImageToLabelMapFilterType::New();
binaryImageToLabelMapFilter->SetInput( threshold ->GetOutput() );
binaryImageToLabelMapFilter->Update();
itk::SimpleFilterWatcher watcher(binaryImageToLabelMapFilter, "filter");
typedef itk::ShapeLabelMapFilter< LabelMapType > ShapeLabelMapFilterType;
ShapeLabelMapFilterType::Pointer shapeFilter =
ShapeLabelMapFilterType::New();
shapeFilter->SetInput( binaryImageToLabelMapFilter->GetOutput() );
shapeFilter->Update();
LabelMapPointer labelMap = binaryImageToLabelMapFilter->GetOutput();
for( unsigned int label=1; label<=labelMap->GetNumberOfLabelObjects();
label++ )
{
const ShapeLabelObjectType * labelObject = labelMap->GetLabelObject( label
);
CharImageIndexType centerIndex;
centerIndex[0] = labelObject->GetCentroid()[0];
centerIndex[1] = labelObject->GetCentroid()[1];
if(centerIndex[0] > 50 && centerIndex[1] > 50 )
candidateCentroids.push_back( centerIndex );
}
typedef itk::LevelSetBasedCellSegmentation< CharImageType, CharImageType >
LevelSetBasedCellSegmentationType;
LevelSetBasedCellSegmentationType::Pointer levelSetSegmentor =
LevelSetBasedCellSegmentationType::New();
levelSetSegmentor->SetInput( mean->GetOutput());
levelSetSegmentor->SetLargestCellRadius( 30.0 ); // in real coordinates
levelSetSegmentor->SetSeedValue( 10 );
levelSetSegmentor->SetIterations( 500 );
levelSetSegmentor->SetPropagationScaling( 4 );
levelSetSegmentor->SetCurvatureScaling( 1 );
levelSetSegmentor->SetAdvectionScaling( 1 );
levelSetSegmentor->SetMaxRMSChange( 0.01 );
for( unsigned int seedNo = 0; seedNo < candidateCentroids.size(); seedNo++ )
levelSetSegmentor->seeds[seedNo] = static_cast<CharImageIndexType>
(candidateCentroids[seedNo]);
try
{
levelSetSegmentor->Update();
}
catch (itk::ExceptionObject& excp)
{
std::cerr << "Err in LevelSetBasedCellSegmentationFilter 1: - Exception
caught " << "\n" << excp << std::endl;
return;
}
--
--
Best Regards,
*HUMAYUN IRSHAD*
*
PhD student, University of Joseph Fourier, Grenoble, France
**
Research Engineer,
**
IPAL – Image & Pervasive Access Lab, Singapore
**
UMI CNRS (I2R/A*STAR, NUS, UJF, UPMC, IT)
Institute for Infocomm Research (I2R)
1 Fusionopolis Way
#10-19 Connexis South Tower
Singapore 138632
Tel:+65-65162864
Cell: +65-83851671
*
--
--
Best Regards,
*HUMAYUN IRSHAD*
*
PhD student, University of Joseph Fourier, Grenoble, France
**
Research Engineer,
**
IPAL – Image & Pervasive Access Lab, Singapore
**
UMI CNRS (I2R/A*STAR, NUS, UJF, UPMC, IT)
Institute for Infocomm Research (I2R)
1 Fusionopolis Way
#10-19 Connexis South Tower
Singapore 138632
Tel:+65-65162864
Cell: +65-83851671
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20120403/d45ba6ff/attachment.htm>
More information about the Insight-users
mailing list