A modular Python application for viewing, analyzing, and processing 3D TIFF images with color-based spine analysis and metadata management.
The application has been broken down into the following modular files:
data_in_image.py- Contains theDataInImageclass for handling metadata of 3D figure propertiesestimator.py- Contains theEstimatorclass with all estimation functions for spine analysistiff_viewer_ui.py- Contains theTIFFViewerUIclass that handles all UI tasks and interactionstiff_viewer_3d.py- Contains theTIFFViewer3Dmain class for loading and processing TIFF images
main.py- Main entry point to run the applicationStable_version_see_through.py- Original monolithic file (kept for reference)
requirements.txt- Python dependenciesREADME.md- This file
- Clone or download the project files
- Install dependencies:
pip install -r requirements.txt
python main.pyYou can also import and use individual classes:
from data_in_image import DataInImage
from estimator import Estimator
from tiff_viewer_ui import TIFFViewerUI
from tiff_viewer_3d import TIFFViewer3D
# Example usage
data = DataInImage()
# ... configure data ...
estimator = Estimator(image_data, rgb_colors)
# ... run estimations ...- 3D TIFF Visualization: Interactive 3D plotting of TIFF images
- Color-based Analysis: Select and analyze specific colors/spines
- Performance Optimization: Configurable downsampling, quality settings, and chunked processing
- Metadata Management: Comprehensive metadata handling and export
- Memory Efficiency: Optimized for large datasets with garbage collection and memory mapping
main.py
└── tiff_viewer_3d.py
├── data_in_image.py
└── tiff_viewer_ui.py
├── data_in_image.py
└── estimator.py
The application includes several performance optimization features:
- Downsample Factor: Reduce data size for faster processing
- Render Quality: Adjust rendering quality vs. speed
- Max Points: Limit maximum points for visualization
- Chunk Size: Control memory usage during processing
- The original
Stable_version_see_through.pyfile is preserved for reference - All functionality from the original file has been maintained
- The modular structure improves maintainability and allows for easier testing and extension
- Each module has clear separation of concerns and minimal dependencies