Commit Graph
5 Commits
Author SHA1 Message Date
osobh 35043e3052 M19: Scientific imaging — ML segmentation, 3D ops, histology, registration, time series (506 tests)
1. ML Segmentation (new ri-ml crate): multi-scale feature extraction (Gaussian/
   LoG/Hessian/Sobel/DoG at 5 scales), random forest classifier from scratch
   (decision trees with Gini impurity, bagging, random feature subsets),
   train_from_rois, predict probabilities, save/load model
2. 3D Operations (new ri-3d-ops crate): gaussian_blur_3d (separable),
   median_filter_3d, dilate_3d/erode_3d, distance_transform_3d,
   connected_components_3d (6/26 connectivity), measure_3d_objects
   (volume/surface/centroid/sphericity), resample_3d (trilinear)
3. Color Deconvolution: Beer-Lambert unmixing, presets (H&E, H-DAB,
   Masson Trichrome, Alcian Blue), auto stain vector estimation (PCA/NMF)
4. Advanced Registration: landmark-based (rigid/similarity/affine via
   least squares), B-spline non-rigid, Thirion's demons deformable
5. Time Series: bleach correction (ratio/exponential/histogram matching),
   temporal median/difference, delta_F/F0 for calcium imaging,
   reslice, orthogonal views
6. OME-TIFF: XML metadata parser, multi-series support, tiled TIFF,
   bio_formats_metadata common struct (pixel_size, z_step, channels)
7. Frequency Domain: notch filter, homomorphic filter, spectral analysis,
   autocorrelation, cross-correlation, phase symmetry detector
8. Advanced Measurements: fractal dimension (box-counting), lacunarity,
   orientation analysis (structure tensor), granulometry, radial
   distribution, 3D intensity profiles
2026-03-14 14:35:37 -07:00
osobh 70d9896547 M17: ImageJ/FIJI feature parity batch 2 — 8 more features (327 tests)
1. File Formats: FITS reader (BITPIX 8/16/32/-32/-64, BZERO/BSCALE),
   AVI reader/writer (uncompressed RIFF), raw binary import
2. Image Calculator: 13 operations (Add/Sub/Mul/Div/AND/OR/XOR/Min/Max/
   Average/Difference/Copy/Transparent-zero), stack calculator
3. Auto-Threshold: 12 new methods (Huang, Intermodes, Li, MaxEntropy,
   Mean, MinError, Minimum, Moments, Percentile, RenyiEntropy, Shanbhag, Yen)
4. Background: sliding paraboloid, create_background, light_background option
5. Multi-point Counter: cell counting with categories, CSV export, auto-detect
6. Stack Statistics: per-slice stats, z/t profiles, kymograph extraction
7. Annotations (new ri-annotation crate): text/arrow/scale_bar with 8x8
   bitmap font, burn_annotations to pixel data
8. Batch Processing: process_directory, convert_directory, batch_measure,
   recursive processing with progress callbacks
2026-03-14 13:07:51 -07:00
osobh 3c84a68e13 M16: ImageJ feature parity — 8 major feature additions (245 tests)
1. Spatial Calibration: SpatialCalibration struct, Feret's diameter,
   shape descriptors (circularity, aspect ratio, roundness, solidity)
2. Enhanced Particle Analysis: ParticleFilter with area/circularity
   filters, exclude_on_edges, Feret/solidity in results
3. Stack Tools: make_substack, concatenate, insert/delete/reverse/sort
4. Morphology: top_hat, bottom_hat, morph_gradient, morph_laplacian,
   ultimate_eroded_points, gray-scale dilate/erode
5. ROI Composites: union, intersection, difference, RoiStyle,
   multi-measure across stack
6. Plot/Graph (new ri-plot crate): XYPlot, scatter, z/t profiles,
   CurveFit (linear, polynomial, exponential, gaussian, power)
7. Bio-Formats: DICOM reader (tag parser + pixel extraction),
   NIfTI-1 reader (.nii + .nii.gz), integrated into load_image()
8. Type Conversion: u8/u16/f32 conversions, rgb_to_gray, gray_to_rgb,
   apply_lut_permanent
2026-03-14 12:39:08 -07:00
Omar SobhandClaude Opus 4.6 b35ef361ac Add M3: ROIs, save/export, undo, and morphological operations
- ri-roi: Full ROI system (Rectangle, Ellipse, Line, Point, Polygon, Freehand)
  with RoiManager, containment tests, pixel iteration, and Bresenham line sampling
- ri-morph: Morphological operations (dilate, erode, open, close) with
  configurable structuring elements (Disk, Square, Cross)
- ri-io: save_image() supporting PNG, JPEG, TIFF, BMP with channel re-interleaving
- ri-measure: ROI-based stats/histogram and line intensity profile
- ri-store: Parent tracking for undo, per-image RoiManager
- ri-ipc: 12 new commands (save, undo, 4 morph ops, 6 ROI commands)
- Frontend: ROI drawing overlay (SVG), ROI toolbar, measurement panel,
  line profile chart, save dialog, undo button, morphology in Process menu

57 tests pass, frontend builds clean.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-09 21:49:20 -07:00
Omar SobhandClaude Opus 4.6 bdbfe49310 Initial commit: RustyImage M0-M2
Scientific image viewer/processor built with Tauri + React + Rust.

M0: Workspace setup, Tauri window, PNG display via ritile:// protocol
M1a: Multi-image tabs, zoom/pan, brightness/contrast, native file dialog,
     keyboard shortcuts, status bar
M1b: RGB/multichannel composite display with per-channel LUTs,
     visibility toggles, additive blending
M2: Pixel inspector, histogram/statistics panel, image processing
    operations (invert, gaussian blur, median filter, threshold,
    histogram equalization), Z/T stack navigation support

Architecture: 14-crate Cargo workspace (ri-types, ri-core, ri-io,
ri-lut, ri-render, ri-store, ri-ops, ri-measure, ri-ipc, ri-app,
plus phase 2-4 placeholders). React frontend with hooks-based state
management and component architecture.

39 tests, all passing.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-09 21:19:47 -07:00