[ITK] Determine surface area of certain region in image
Matthias B
matthias.b at hotmail.com
Wed Aug 10 11:11:55 EDT 2016
Thank you for the code
sp[0] and sp[1] is both 1 in my code. I don't get how I would get 12 in your example.The 3DImage is also never used.
The spacing is also never absolute in my situation.
Ydata could also be like this={{3,2.5,2.1,2.5,2.2},{1.4,1.2,1.3,1.1,1.1},...}
From: dzenanz at gmail.com
Date: Wed, 10 Aug 2016 09:58:32 -0400
Subject: Re: [ITK] Determine surface area of certain region in image
To: matthias.b at hotmail.com
CC: dan.muel at gmail.com; community at itk.org; blowekamp at mail.nih.gov
3DImage of size 5x5x3, and LabelImage 5x5.
Dim labelShapeStatistics = New simple.LabelShapeStatisticsImageFilter()
labelShapeStatistics.Execute(labelImage)
Dim perimeterValue= labelShapeStatistics.GetPerimeter(1)
Dim pixelCount = labelShapeStatistics.GetNumberOfPixels(1) //=9 in your example
Dim sp = labelImage.GetSpacing()
Dim surfaceArea=pixelCount*sp[0]*sp[1] //sp[0]*sp[1] should be =1.25 to yield a total of 12 which you want
HTH,Dženan
On Wed, Aug 10, 2016 at 9:48 AM, Matthias B <matthias.b at hotmail.com> wrote:
I think an example is the best way to solve my problem.
Let us take following 3D Data with name 3DImage as itk.simple.imageXdata={{-4,-2,0,2,4},{-4,-2,0,2,4},{-4,-2,0,2,4},{-4,-2,0,2,4},{-4,-2,0,2,4}}Ydata={{2,2,2,2,2},{1,1,1,1,1},{0,0,0,0,0},{-1,-1,-1,-1,-1},{-2,-2,-2,-2,-2}}Zdata={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}}
and LabelImage as itk.simple.imageLabelImage={{{0,0,0,0,0},{0,1,1,1,0},{0,1,1,1,0},{0,1,1,1,0},{0,0,0,0,0}}
The surface area with label 1 should be 12.Which steps (C# or C++) do I need to take to solve this?
Thank you guys
From: dzenanz at gmail.com
Date: Wed, 10 Aug 2016 09:27:05 -0400
Subject: Re: [ITK] Determine surface area of certain region in image
To: matthias.b at hotmail.com
CC: community at itk.org; dan.muel at gmail.com; blowekamp at mail.nih.gov
Sorry, I have confused LabelShapeStatistics with LabelStatistics filter.
With label shape statistics, there is no intensity image, only the label image which you are already using as input.
You generally don't mix (add) label and intensity images, you just keep them separate and know which two are a pair. For label statistics, you simply set two inputs like in this example.
Regards
On Wed, Aug 10, 2016 at 9:19 AM, Matthias B <matthias.b at hotmail.com> wrote:
I understand, but how do I add the label on the 3D image programmatically?preferable in C#, but C++ is also ok.
Thank you for your help
From: dzenanz at gmail.com
Date: Wed, 10 Aug 2016 09:14:35 -0400
Subject: Re: [ITK] Determine surface area of certain region in image
To: matthias.b at hotmail.com
CC: blowekamp at mail.nih.gov; dan.muel at gmail.com; community at itk.org
The 3D image where the label will be applied is need for statistics such as mean, min and max values. If you don't care about those, you can supply the same image as both label and original (intensity) image. Or you can supply an empty (all black) image there.
HTH,Dženan
On Wed, Aug 10, 2016 at 8:47 AM, Matthias B <matthias.b at hotmail.com> wrote:
Thank you for answering Dženan,
ok, the perimeter attribute is what I need.
Problem is that I don't see a way where I can1. Choose a label image to define the region2. Choose the 3D Image where the label will be aplied
At this moment it looks for me that the label image already contains the 3D data, which confuses me.
From: dzenanz at gmail.com
Date: Wed, 10 Aug 2016 08:32:53 -0400
Subject: Re: [ITK] Determine surface area of certain region in image
To: matthias.b at hotmail.com
CC: blowekamp at mail.nih.gov; community at itk.org
Hi Matthias,
perimeter should be surface area in 3D (which you can divide by 2 to eliminate back side if you have a very flat object). In 2D image, it is the circumference. In 2D image, you can get object's surface area by counting how many pixels it has and then multiplying that by the size of each pixel (spacing[0]*spacing[1]).
Regards,Dženan
On Wed, Aug 10, 2016 at 2:40 AM, Matthias B <matthias.b at hotmail.com> wrote:
Thank you for answering!
At this moment I get the perimeter in pixel units (not the surface area of my X,Y-data) of my labeled image.I have also really no idea how to use my 3D data with a labeled image. I see no way how to add 3D data to a LabelMap for example.
This is what I have at the moment.Dim labelShapeStatistics = New simple.LabelShapeStatisticsImageFilter()labelShapeStatistics.Execute(labelImage)Dim perimeterValue= labelShapeStatistics.GetPerimeter(1)
Thanks for any help, Matthias
From: blowekamp at mail.nih.gov
To: matthias.b at hotmail.com
CC: community at itk.org
Subject: Re: [ITK] Determine surface area of certain region in image
Date: Tue, 9 Aug 2016 15:58:56 +0000
Hello,
You should look into the label map framework [1]. In particular the LabelImageToShapeLabelMapFilter[2] and the Perimeter attribute [3] [4].
HTH,
Brad
[1] http://hdl.handle.net/1926/584
[2] https://itk.org/Doxygen/html/classitk_1_1LabelImageToShapeLabelMapFilter.html
[3] https://itk.org/Doxygen/html/classitk_1_1ShapeLabelObject.html#aff1209e925293c15775520ef89e97afb
[4] http://hdl.handle.net/10380/3342
On Aug 9, 2016, at 11:50 AM, Matthias B <matthias.b at hotmail.com> wrote:
Hello ITK-community,
At the moment I'm working with 3D Images with following structure: 100x80x3. Every pixel contains a X,Y,Z value.
I want to calculate the surface area of a certain region that I have defined with a boolean 2D-Image (100x80).
The surface area should only be calculated with the X,Y-data.
In Matlab I have experience with this by using the function bwboundaries on the boolean image. This function determines the indices of the the boundaries in clockwise direction. Next I take the corresponding X,Y values of the indices so I can
calculate the surface area with the function polyarea.
Is this possbile with the ITK-library?
Thank you for your help guys.
Virusvrij. www.avast.com
_______________________________________________
Community
mailing list
Community at itk.org
http://public.kitware.com/mailman/listinfo/community
_______________________________________________
Community mailing list
Community at itk.org
http://public.kitware.com/mailman/listinfo/community
Virusvrij. www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20160810/d5c79eac/attachment-0001.html>
More information about the Community
mailing list