X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=itk%2FclitkSegmentationUtils.txx;h=a57d8136becb4b919b1b1bc9360f6343c6547028;hb=6fc38645c1b9ce54aba8483c0dc0e83dda1f93f1;hp=501c64f86fedd8ace7de88f1e7e9388c4e6fd807;hpb=e2b37672d5ee8eafc7b1ac075f4e70596349f0c3;p=clitk.git diff --git a/itk/clitkSegmentationUtils.txx b/itk/clitkSegmentationUtils.txx index 501c64f..a57d813 100644 --- a/itk/clitkSegmentationUtils.txx +++ b/itk/clitkSegmentationUtils.txx @@ -766,8 +766,7 @@ namespace clitk { { assert((mainDirection==0) || (mainDirection==1)); typedef itk::ImageSliceIteratorWithIndex SliceIteratorType; - SliceIteratorType siter = SliceIteratorType(input, - input->GetLargestPossibleRegion()); + SliceIteratorType siter = SliceIteratorType(input, input->GetLargestPossibleRegion()); siter.SetFirstDirection(0); siter.SetSecondDirection(1); siter.GoToBegin(); @@ -786,7 +785,6 @@ namespace clitk { A = lA[i]; B = lB[i]; C = A; - // Check that the line is not a point (A=B) bool p = (A[0] == B[0]) && (A[1] == B[1]); @@ -1323,11 +1321,11 @@ namespace clitk { // Compute dmap for S1 *TO PUT IN FONCTION* dmap = clitk::DistanceMap(slices_s1[i], BG); dmaps1.push_back(dmap); - writeImage(dmap, "dmap1.mha"); + //writeImage(dmap, "dmap1.mha"); // Compute dmap for S2 dmap = clitk::DistanceMap(slices_s2[i], BG); dmaps2.push_back(dmap); - writeImage(dmap, "dmap2.mha"); + //writeImage(dmap, "dmap2.mha"); // Look in S2 for the point the closest to S1 typename SliceType::PointType p = ComputeClosestPoint(slices_s1[i], dmaps2[i], BG); @@ -1394,6 +1392,30 @@ namespace clitk { //-------------------------------------------------------------------- + //-------------------------------------------------------------------- + template + typename ImageType::Pointer + RemoveNegativeIndexFromRegion(ImageType * input) { + typedef itk::ChangeInformationImageFilter< ImageType > InfoFilterType; + typename InfoFilterType::Pointer indexChangeFilter = InfoFilterType::New(); + indexChangeFilter->ChangeRegionOn(); + // The next line is commented because not exist in itk 3 + // typename InfoFilterType::OutputImageOffsetValueType indexShift[3]; + long indexShift[3]; + typename ImageType::IndexType index = input->GetLargestPossibleRegion().GetIndex(); + for(uint i=0;iGetOrigin()[i] - indexShift[i]*input->GetSpacing()[i]; + indexChangeFilter->SetOutputOffset( indexShift ); + indexChangeFilter->SetInput(input); + indexChangeFilter->SetOutputOrigin(origin); + indexChangeFilter->ChangeOriginOn(); + indexChangeFilter->Update(); + return indexChangeFilter->GetOutput(); + } + //-------------------------------------------------------------------- } // end of namespace