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

feat: mesh precompute functions and state generation #23

Merged
merged 90 commits into from
Oct 22, 2024
Merged

Conversation

aranega
Copy link
Collaborator

@aranega aranega commented Sep 19, 2024

This PR introduce all the function necessary to perform multi-scale mesh generation:

  • from a precomputed segmentation project,
  • for single mesh generation as precomputed format (standalone mesh without any segmentation data)
  • for multiple mesh generation as precomputed format (standalone meshes for different labels, but without any segmenation data)

aranega and others added 30 commits June 26, 2024 10:40
The mesh creation relies on igneous, and provide some patch to overcome
some identified bugs in igneous.
@aranega aranega requested a review from seankmartin September 19, 2024 01:58
@aranega aranega marked this pull request as draft September 19, 2024 02:06
@seankmartin seankmartin changed the title CC-94 Code review and fixes for mesh generation functions feat: mesh precompute functions and state generation Sep 19, 2024
…s, and the mesh render scale

also keep the names for "mesh" generation to distinguish from "seg" generation so that the interface can stay the same, but use aliases where there is no difference in the function
@aranega aranega marked this pull request as ready for review September 24, 2024 16:28
Adds ability to tag segmentations with a string label. This is across
segmentation masks and meshes


![image_720](https://github.com/user-attachments/assets/7b9d4216-395d-4df1-8354-110b2be60fae)
Copy link
Collaborator

@seankmartin seankmartin left a comment

Choose a reason for hiding this comment

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

looks good!

@seankmartin
Copy link
Collaborator

@manasaV3 should we merge this one with the 90 commits or would you prefer we squash into one commit and then merge? (cc @aranega)

@seankmartin seankmartin merged commit 02439d8 into main Oct 22, 2024
5 checks passed
@seankmartin seankmartin deleted the feature/CC-94 branch October 22, 2024 08:25
manasaV3 pushed a commit that referenced this pull request Dec 24, 2024
🤖 I have created a release *beep* *boop*
---


##
[1.1.0](v1.0.0...v1.1.0)
(2024-12-06)


### ✨ Features

* add all hyperopts to contrast limits
([1fa9d6a](1fa9d6a))
* add decimation algorithm for contrast limit computation
([9499967](9499967))
* Add default opacity to 1 and blend to additive
([cb32980](cb32980))
* Add default opacity to 1 and blend to additive (CC-165)
([#27](#27))
([3316c78](3316c78))
* add hide high noise option
([bf97c93](bf97c93))
* add initial hyperopt
([05ab24d](05ab24d))
* add optimisation for hyperparams to the contrast limit class w test
([17a311b](17a311b))
* add segmentation property objects
([d7664bc](d7664bc))
* add v1 of GMM and k-means contrast limits
([eda99a9](eda99a9))
* Add volume rendering contrast limits
([#25](#25))
([10669d5](10669d5))
* Adding release please
([#19](#19))
([4ec9ca7](4ec9ca7))
* allow seg gen to control the segments shown, have random colours, and
the mesh render scale
([759def1](759def1))
* allow to not persist big zarrs
([62166af](62166af))
* better window limits from contrast
([96ece94](96ece94))
* change print to logging of chunk comparison size
([878a7a7](878a7a7))
* clean up contrast limits
([87e25e5](87e25e5))
* contrast limit improvements
([ff5ef94](ff5ef94))
* datasets for contrast limit testing
([25b7861](25b7861))
* Disable "pick" by default for segmentation layer.
([#28](#28))
([8287be7](8287be7))
* Disable "pick" for default value in segmentation layer
([3af57f4](3af57f4))
* improve CDF based contrast limits
([822be9f](822be9f))
* improve high value hide control
([5d3a8ae](5d3a8ae))
* improve manual limits testing and add auto screenshots
([a24ad8c](a24ad8c))
* include manual test for contrast
([1882a91](1882a91))
* include new contrast limit methods
([75b1a2e](75b1a2e))
* incorportate hyperopt in api test
([0003de9](0003de9))
* link seg properties into mesh and seg creation
([dfbd34a](dfbd34a))
* main public API to limits tuning
([71112c9](71112c9))
* make public API to contrast limits
([30eaa75](30eaa75))
* mesh precompute functions and state generation
([#23](#23))
([02439d8](02439d8))
* more control over image JSON generator
([e15bace](e15bace))
* more control over mesh from segmentation
([e1af340](e1af340))
* per comp GMM standard deviation
([94240a7](94240a7))
* progress on contrast limits
([5f9e7e0](5f9e7e0))
* tuned two best methods, need removal of tuning params
([f4c076f](f4c076f))
* tuning contrast limits
([356ca03](356ca03))
* update gmm sample size
([ff01ae5](ff01ae5))
* update shader names
([2dfe36f](2dfe36f))
* update tuning
([65c3f93](65c3f93))


### 🐞 Bug Fixes

* allow segmentation to overwrite existing segment properties
([#26](#26))
([dc38b7d](dc38b7d))
* allow segmentation to overwrite existing segment properties on new run
([54c1b14](54c1b14))
* calculate grid size over all LODs, not LOD 0 only
([2753486](2753486))
* correct flag for projection_quaternion default
([2692a6d](2692a6d))
* correct numpy array in type hint after using | None
([945fbc8](945fbc8))
* correct octree processing at borders
([02cd34e](02cd34e))
* correct val typo for value in shader builder
([16b89ca](16b89ca))
* don't crash on projection quaternion, allow axis line hiding
([683babf](683babf))
* first round of octree improvements
([0f3d863](0f3d863))
* gmm limits don't go out of data bounds
([ae99495](ae99495))
* have VR limits inverted using our control not builtin
([ebc8911](ebc8911))
* improve contrast limits
([452a7bf](452a7bf))
* include patched octree in multires code
([1df1024](1df1024))
* issue with empty screenshots
([c4ff38a](c4ff38a))
* json scale typing and also processing for meshes
([4c5123c](4c5123c))
* process data in chunks for bounding box to not run out of memory
([7e09ce4](7e09ce4))
* remove accidental debug print
([b52ea24](b52ea24))
* remove top level matplotlib import
([62dddaa](62dddaa))
* **test:** test fixes after shader and limit changes
([7923a2a](7923a2a))
* update docstring for decimation aggressiveness
([2516420](2516420))


### 📝 Documentation

* add docstring
([bcc2c14](bcc2c14))
* improve docs on window from limits
([653cea1](653cea1))
* update notes about meshes
([29d7010](29d7010))


### 💅 Styles

* rename oriented point JSON generator
([#21](#21))
([d1fd921](d1fd921))


### 🧹 Miscellaneous Chores

* formatting
([b19dd7d](b19dd7d))
* linting fix
([a066566](a066566))
* update lock file
([5fdc75c](5fdc75c))


### ♻️ Code Refactoring

* make calculator not intended to be reusable, but tied to a volume.
Also make the base calc abstract
([b108b2d](b108b2d))
* remove Optional and more generic dirs, fix redundant code line
([f1a179a](f1a179a))
* remove timing function for experiment
([aeb13db](aeb13db))
* rename oriented point JSON generator
([2f2c8e9](2f2c8e9))


### 🧪 Tests

* add contrast limit test
([d70c05f](d70c05f))
* add manual test for mask from segmentation
([ea3ffd7](ea3ffd7))
* add other URLs for contrast limits
([4cef902](4cef902))
* better contrast limit manual test
([9a60925](9a60925))
* better mesh from seg test
([7d29fd6](7d29fd6))
* disable long running test
([d8af9d4](d8af9d4))
* update manual tests with seg properties
([b482f6e](b482f6e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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