Skip to content

Gaussian smoothing process for a segment #757

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

Merged
merged 15 commits into from
Jun 27, 2025
Merged

Conversation

PaulHax
Copy link
Collaborator

@PaulHax PaulHax commented Jun 24, 2025

image

PaulHax added 10 commits June 23, 2025 12:23
Implements label-preserving Gaussian smoothing for 3D volume segmentation with:
- Separable 3D convolution algorithm in pure JavaScript
- Label-preserving approach to prevent boundary mixing
- Preview/confirm/cancel workflow matching existing patterns
- Configurable sigma parameter (0.1-5.0) with slider control
…and gaussianSmooth

- Consolidate FillBetween and GaussianSmooth modes into unified Process mode
- Add shared ProcessStore with common workflow (start/computing/previewing states)
- Create ProcessControls with ProcessTypeSelector and ProcessWorkflow components
- Replace individual control components with parameter-focused components
- Add informative expansion panels explaining each algorithm
- Move gaussianSmooth.worker.ts to src/core/tools/paint/ directory
- Remove standalone gaussianSmooth.ts wrapper
- Integrate worker management directly into store
- Maintain consistent architecture with other paint tools
…e extraction

- Calculate minimal bounding box containing target segmentation label
- Expand bounding box by kernel radius to handle potential growth
- Extract and process only the relevant sub-volume instead of entire image
- Copy filtered results back to original volume maintaining label integrity
- Use VTK.js compatible bounding box format (6-element number array)
- Significantly reduces computation time for sparse segmentations
Copy link

netlify bot commented Jun 24, 2025

Deploy Preview for volview-dev ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 58f56b9
🔍 Latest deploy log https://app.netlify.com/projects/volview-dev/deploys/685d97751096a70008ad9436
😎 Deploy Preview https://deploy-preview-757--volview-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@PaulHax PaulHax requested a review from floryst June 24, 2025 19:45
@PaulHax PaulHax changed the title Gaussian smooth processing for a segment Gaussian smoothing process for a segment Jun 24, 2025
Copy link
Collaborator

@floryst floryst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still not 100% set on the workflow for choosing between the original and processed (something like "apply/cancel" with preview toggles makes more sense to me), but I don't have a better idea at the moment.

- Rename store from 'process' to 'paintProcess' to better reflect paint-oriented purpose
- Rename computeProcess function to startProcess for clarity
- Export sigma constants directly from module instead of through store
- Update all import statements to use @/src/store alias pattern
@PaulHax
Copy link
Collaborator Author

PaulHax commented Jun 26, 2025

Addressed the comments and added a cancel button:
image

Copy link
Collaborator

@floryst floryst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall I think this is just about ready to go.

Copy link
Collaborator

@floryst floryst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice Job! I'm good with these changes.

@bpaniagua
Copy link

bpaniagua commented Jun 27, 2025

@floryst @PaulHax please integrate, update the Jira ticket and notify this is ready for testing

@floryst floryst added this pull request to the merge queue Jun 27, 2025
Merged via the queue into Kitware:main with commit f5d7f7b Jun 27, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants