Efficient N-Dimensional surface estimation using Crofton formula and run-length encoding
logo

Please use this identifier to cite or link to this publication: http://hdl.handle.net/10380/3342
Unlike the measure of the area in 2D or of the volume in 3D, the perimeter and the surface are not easily measurable in a discretized image.
In this article we describe a method based on the Crofton formula to measure those two parameters in a discritized image. The accuracy of the method is discussed and tested on several known objects. An algorithm based on the run-length encoding of binary objects is presented and compared to other approaches.
An implementation is provided and integrated in the LabelObject/LabelMap framework contributed earlier by the authors.
Code
There is no code review at this time.

Reviews
minus IJ to the rescue, again! by Nick Tustison on 2012-03-09 08:55:32 for revision #2
starstarstarstarstar expertise: 3 sensitivity: 5
yellow
Summary:

I was about to piece together some VTK code to estimate surface area when I stumbed across this contribution from Gaetan where he presents a method for estimating the surface area of digitized binary objects. 

Evidence:

Comparisons are made with isosurface reconstruction.

Open Science:

of course.

Reproducibility:

I saved the classes in my own repository and compiled it in code that calculates other label geometry measures.

Use of Open Source Software:

Yes.

Open source Contributions:

Definitely.

Code Quality :

It's of the usual high quality we've come to expect from Gaetan.

Quality of the data :

NA

Interest:

Yes, I would definitely recommend it for inclusion in the main repository.

Add a new review
Quick Comments
Comment by Toni Sdga yellow
on perf3D.cxx that is...

the line where the error comes is:
const MeshType::CellType::PointIdentifierContainerType & pids = it.Value()->GetPointIdsContainer();
Comment by Toni Sdga yellow
I got the following error, when i tried to compile:
what am i doing wrong?

check.cxx(210) : error C2039: 'PointIdentifierContainerType' : is not a member of 'itk::CellInterface'
1> with
1> [
1> TPixelType=double,
1> TCellTraits=itk::CellTraitsInfo<3,float,float,itk::DefaultStaticMeshTraits::PointIdentifier,itk::DefaultStaticMeshTraits::CellIdentifier,itk::DefaultStaticMeshTraits::CellFeatureIdentifier,itk::Point,itk::VectorContainer::PointIdentifier,itk::Point>,itk::DefaultStaticMeshTraits::UsingCellsContainer>
1> ]
1>..check.cxx(210) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>..check.cxx(210) : error C2143: syntax error : missing ';' before '&'
1>..check.cxx(210) : error C2065: 'pids' : undeclared identifier
1>..check.cxx(210) : error C2039: 'GetPointIdsContainer' : is not a member of 'itk::CellInterface'
1> with
1> [
1> TPixelType=double,
1> TCellTraits=itk::CellTraitsInfo<3,float,float,itk::DefaultStaticMeshTraits::PointIdentifier,itk::DefaultStaticMeshTraits::CellIdentifier,itk::DefaultStaticMeshTraits::CellFeatureIdentifier,itk::Point,itk::VectorContainer::PointIdentifier,itk::Point>,itk::DefaultStaticMeshTraits::UsingCellsContainer>
1> ]
1>..check.cxx(211) : error C2065: 'pids' : undeclared identifier
1>..check.cxx(211) : error C2660: 'itk::PointSet::GetPoint' : function does not take 1 arguments
1> with
1> [
1> TPixelType=double,
1> VDimension=3,
1> TMeshTraits=itk::DefaultStaticMeshTraits
1> ]
1>..check.cxx(212) : error C2065: 'pids' : undeclared identifier
1>..check.cxx(212) : error C2660: 'itk::PointSet::GetPoint' : function does not take 1 arguments
1> with
1> [
1> TPixelType=double,
1> VDimension=3,
1> TMeshTraits=itk::DefaultStaticMeshTraits
1> ]
1>..check.cxx(213) : error C2065: 'pids' : undeclared identifier
1>..check.cxx(213) : error C2660: 'itk::PointSet::GetPoint' : function does not take 1 arguments
1> with
1> [
1> TPixelType=double,
1> VDimension=3,
1> TMeshTraits=itk::DefaultStaticMeshTraits
1> ]


Resources
backyellow
Download All
Download Paper , View Paper
Download Source code
Source code repository
Github

Statistics more
backyellow
Global rating: starstarstarstarstar
Review rating: starstarstarstarstar [review]
Code rating:
Paper Quality: plus minus
2 comments

Information more
backyellow
Categories: Data Representation, Filtering
Keywords: Crofton, RLE, Perimeter, Surface
Toolkits: ITK
Export citation:

Share
backyellow
Share

Linked Publications more
backyellow
Reader/Writer for Analyze Object Maps for ITK Reader/Writer for Analyze Object Maps for ITK
by Hawley J., Johnson H.
Importing Contours from DICOM-RT Structure Sets Importing Contours from DICOM-RT Structure Sets
by Dowling J., Malaterre M., Greer P.B., Salvado O.

View license
Loading license...

Send a message to the author
main_flat
Powered by Midas