Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

For volumetry calculation, voxels of the projected Bezier Surface couldn't be counted which lead to an incorrect total volume #238

Open
RuoyanMeng opened this issue May 3, 2023 · 2 comments
Labels
development help wanted Extra attention is needed

Comments

@RuoyanMeng
Copy link
Collaborator

RuoyanMeng commented May 3, 2023

#227

Describe the bug
For volumetry calculation, voxels of the projected Bezier Surface couldn't be counted which lead to an incorrect total volume,

To Reproduce

  1. Try to calculate one of the vascular segments' volume directly
  2. Choose one resection surface node and put points on the same vascular segment, recompute volume.

Expected behavior
The total volume of the chosen area should be 463, but when considering the resection surface, the result loses voxels because projected resection voxels couldn't be counted

Screenshots
Screenshot from 2023-05-03 13-45-07

@RuoyanMeng RuoyanMeng added the bug Something isn't working label May 3, 2023
@RafaelPalomar RafaelPalomar added help wanted Extra attention is needed development and removed bug Something isn't working labels May 5, 2023
@RafaelPalomar
Copy link
Collaborator

From the top of my head. The projected surface probably has a good thickness (image spacing can exacerbate volume of the resection surface), which can contribute to error.

I would try to use 1 voxel thickness for the projected resection (right now it seems to be 3 voxels wide). The connected threshold filter is configured as face connectivity, which should naturally avoid diagonal leaks. I would expect this to reduce the error.

@RuoyanMeng
Copy link
Collaborator Author

From the top of my head. The projected surface probably has a good thickness (image spacing can exacerbate volume of the resection surface), which can contribute to error.

I would try to use 1 voxel thickness for the projected resection (right now it seems to be 3 voxels wide). The connected threshold filter is configured as face connectivity, which should naturally avoid diagonal leaks. I would expect this to reduce the error.

Simply removing the 3*3*3 barrier will lead to failed connected thresholding in most cases. So I developed an adaptive algorithm for getting proper resolution of the resection surface to make sure it can be projected as a 1*1*1 thickness continuous barrier for region growth.
Bezier surface is controlled by 16 points and the diagonal points pairs ([0,5,10,15] and [3,6,9,12]) would create the longest Bezier curve within the Bezier surface.
The idea is approximate the two diagonal Bezier lines' length of the bezier surface, then divided by minimal voxel space to get a resolution, so that when the Bezier surface polygon is cutting through voxels we have at least one vertex in each voxel. Then when we label the voxels we can get a safe barrier for region growing.

With this method, we can get fewer errors as shown in the figure below.

Screenshot from 2023-05-11 14-36-19

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants