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.
Laplace Beltrami Filter on QuadEdge Meshes Laplace Beltrami Filter on QuadEdge Meshes
by Bowers M., Younes L.

View license
Loading license...

Send a message to the author
main_flat
ISSN 2327-770X
Powered by Midas