Skip to content

Releases: happyRip/Frame-Detection

v0.0.11

Choose a tag to compare

@github-actions github-actions released this 16 Dec 08:10
04ce870

Added

  • Automatic rotation detection from frame edges and sprocket holes
    • Sprocket-based rotation (preferred): extracts angle from polynomial-fitted sprocket boundary slopes
    • Edge-based rotation (fallback): calculates angle from detected frame edge lines when ≥3 edges agree
    • CLI flags: --no-rotation, --no-sprocket-rotation, --max-rotation (default: 5°)
  • Rotation settings in Lightroom plugin Crop tab
    • Auto-rotation checkbox (enabled by default)
    • Sprocket rotation checkbox (use sprocket holes for more reliable detection)
    • Max rotation field (0.5-15°)
  • Keystone (perspective distortion) detection
    • Detects when film wasn't flat during scanning causing trapezoidal distortion
    • Combined detection using both methods for complete coverage:
      • Sprocket-based: measures convergence from sprocket boundary distances (one axis)
      • Edge-based: measures convergence from frame edge angles (both axes)
    • CLI flags:
      • --keystone outputs vertical and horizontal perspective correction values
      • --keystone-source selects detection method: combined (default), sprockets, or edges
    • Lightroom plugin:
      • Separate "Keystone Detection" section in Film tab
      • Source dropdown to select detection method
      • Results dialog shows relative adjustment values (add/subtract from current settings)
      • Values rounded to integers for Lightroom compatibility
    • Debug visualization shows both detection methods side-by-side

Fixed

  • Outlier regions from film base variance detection (e.g., light leaks) are now masked out during edge detection instead of being added as false edge hints

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 11 Dec 07:17
d26e6dc

Added

  • Adaptive tolerance based on film base color variance using IQR (interquartile range)
    • Tolerance automatically adjusts based on film base consistency
    • Configurable min/max range via --adaptive-min (default: 10) and --adaptive-max (default: 30)
    • Lower variance film bases get tighter tolerance for cleaner masks
  • Gradient tolerance option (--gradient-tolerance)
    • Tolerance is 0 at image center and increases to max at edges
    • Helps prevent false matches in the frame area
  • Adaptive tolerance controls in Filters > Film Base tab
    • Min/Max sliders for adaptive tolerance range
    • Gradient tolerance checkbox

Fixed

  • Preview now resets crop before generating when "Reset crop" setting is enabled
  • Plugin filter config values no longer overwritten by CLI defaults

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 09 Dec 19:01
b4f8be9

Added

  • New --sprocket-type CLI option to control sprocket hole detection separately from film type:
    • none - skip sprocket detection (medium format, pre-cropped images)
    • bright - expect bright sprocket holes
    • dark - expect dark sprocket holes
    • auto - auto-detect (default)
  • Plugin: New "Sprocket type" setting in Film tab

Fixed

  • Plugin: Auto Crop button now correctly uses custom command path setting

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 09 Dec 17:40
d74f9c8

Changed

  • Reorganized plugin settings dialog: new "Film" tab as first tab with film type and auto crop buttons, "Crop" tab now contains only crop-related settings
  • Moved "Restore Defaults" button to bottom left of main dialog window
  • Navigation buttons disabled when single photo selected

v0.0.7

Choose a tag to compare

@github-actions github-actions released this 09 Dec 17:18
b42f259

Added

  • JSON-based filter configuration via --filter-config CLI argument
  • FilterConfig dataclasses for structured parameter management
  • Configurable parameters for all edge detection filters:
    • Canny: low/high thresholds
    • Sobel/Scharr/Laplacian: blur size
    • DoG: sigma1/sigma2
    • LoG: sigma
  • Configurable parameters for all separation methods:
    • All methods: tolerance
    • CLAHE: clip limit, tile size
    • Adaptive: block size
    • Gradient: gradient weight
  • New "Filters" tab in Lightroom plugin dialog with:
    • Film Base and Edge Detection subtabs
    • Edge filter selection and parameter tuning
    • Separation method selection and parameter tuning
    • Reset buttons (↺) next to parameter labels to restore defaults
    • Single dynamic preview button that switches between "Preview Film Base" and "Preview Edges" based on selected subtab
  • Preview backup flow with .bak rotation for preview temp directories
  • --preview-mode CLI argument for minimal preview generation:
    • separation: generates only film base mask visualization
    • edges: generates only edge detection visualization

Fixed

  • Renamed JSON.lua to JsonEncoder.lua to avoid Lightroom reserved name conflict

v0.0.6

Choose a tag to compare

@github-actions github-actions released this 09 Dec 11:54
dd95451

Changed

  • CLI now requires explicit detect subcommand for frame detection

v0.0.4

Choose a tag to compare

@github-actions github-actions released this 09 Dec 11:27
f61197a

Fixed

  • CLI no longer requires OpenCV for install/uninstall commands (lazy imports)

Added

  • Auto-discovery of negative-auto-crop command from Homebrew locations
  • Configurable command path in plugin Debug settings

v0.0.3

Choose a tag to compare

@github-actions github-actions released this 09 Dec 09:38
7100392

Changed

  • Installation method changed to Homebrew distribution
  • CLI tool and Lightroom plugin now installed separately
  • Keyboard shortcuts managed via negative-auto-crop install/uninstall shortcuts

Removed

  • Bundled Python environment in plugin (now uses system command)

Migration

If upgrading from a previous version, uninstall first:

negative-auto-crop uninstall

See homebrew-negative-auto-crop for installation instructions.

v0.0.2

Choose a tag to compare

@github-actions github-actions released this 08 Dec 22:59
e837025

Full Changelog: v0.0.1...v0.0.2

v0.0.1

Choose a tag to compare

@github-actions github-actions released this 08 Dec 21:44
709a228