Skip to content

v4.9.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 22:46
· 20 commits to master since this release
30e41b7

OpenCV v4.9.0

Diff since v4.8.0

OpenCV.jl v4.9.0

Brings the bindings up to OpenCV 4.13.0 and fixes loading on it. Requires OpenCV_jll 4.13.0+4 or newer.

Highlights

  • Fixes using OpenCV on OpenCV 4.13.0 — resolves the No appropriate factory for type N2cv3ORB9ScoreTypeE precompile failure (enum return types are now cast to int64_t in the generated glue).
  • Now wraps OpenCV 4.13.0.

Fixes

  • detect → compute and match/knnMatch/radiusMatch no longer hit a use-after-free; KeyPoint/DMatch vectors round-trip correctly.
  • features2d: ORB_create() and SimpleBlobDetector_create() now work with no arguments.
  • FileIO: load/save over Streams fixed.
  • julia_to_cpp on an unsupported element type now throws a clear OpenCVError instead of returning nothing.

Documentation

  • New manual: Core concepts (the cv:: → OpenCV. naming, the (channels, cols, rows) Mat layout, dtypes and interop), an API reference, and a generated list of every wrapped function. The wrapped OpenCV version is now derived automatically in the docs.

Internal

  • Conversion/bootstrap layer restructured (src/overrides/, depth-table dedup, new OpenCVError); test coverage raised from ~50% to ~80%.

Compatibility

  • CxxWrap compat tightened to 0.17 (drops the unsupported 0.16).
  • Requires OpenCV_jll 4.13 (4.13.0+4 or newer).
  • Minimum Julia 1.10.

Merged pull requests:

  • gen: compile cv_core.cpp as C++17 (fix macOS libc++ build) (#80) (@ViralBShah)
  • Wrap features2d (1/2): generator inputs (#81) (@ViralBShah)
  • Wrap features2d (2/2): generated wrappers + tests (closes #51) (#82) (@ViralBShah)
  • Fix segfault accessing split() output (#57) (#83) (@ViralBShah)
  • Add external GC pressure hint for cv::Mat buffers (#10) (#84) (@ViralBShah)
  • Make Mat and Vec fields concrete to eliminate boxing (#1, #32) (#85) (@ViralBShah)
  • Expand README and docs to address #3 (#86) (@ViralBShah)
  • gen: skip enum typedefs in mod.add_type (fixes ORB ScoreType factory error) (#87) (@ViralBShah)
  • gen: remove stale jl_cxx_files duplicate of src/ (#88) (@ViralBShah)
  • gen: cast enum return types to int64_t (fix ORB::ScoreType factory error) (#89) (@ViralBShah)
  • Generic safe value-vector conversion (KeyPoint + DMatch) (#90) (@ViralBShah)
  • Tighten CxxWrap compat to 0.17 (#91) (@ViralBShah)
  • Docs overhaul + cleanup & coverage (rebased on master) (#92) (@ViralBShah)
  • Cleanup (depth table, OpenCVError, split overrides) + coverage 50%→80% (#93) (@ViralBShah)
  • Restructure the conversion/bootstrap layer (#94) (@ViralBShah)
  • docs: doctests, versioning merge, generated wrapped-functions list (#95) (@ViralBShah)

Closed issues:

  • avoid abstract types (#1)
  • Add some docs (#3)
  • findContours bug? (#8)
  • Julia cannot do GC automatically on OpenCV Mat (#10)
  • Some operations on OpenCV.Mat are slow and taking high memory. (#32)
  • Adding the features2d module (#51)
  • access violation when accessing the output of split (#57)