Skip to content

v4.8.0

Choose a tag to compare

@github-actions github-actions released this 03 Jun 20:26
· 64 commits to master since this release
685eb36

OpenCV v4.8.0

Diff since v4.7.0

v4.8.0

OpenCV.jl now vendors its own Julia binding generator and ships the
generated wrappers in-repo, decoupling the package from the wrappers
that were previously bundled inside OpenCV_jll. Several long-standing
dispatch bugs are fixed along the way.

Vendored binding generator (#76)

  • The Julia binding generator (formerly in opencv_contrib/modules/julia)
    now lives in gen/; the generated .jl wrappers live in src/generated/.
  • Regeneration is reproducible (julia gen/regenerate.jl produces a
    byte-identical tree); see gen/PROVENANCE.md for the OpenCV 4.13.0
    source pin and bump procedure.

Bug fixes

  • #5: regression coverage for the cpp-to-julia dereference path
    (split followed by reuse).
  • #18: polylines, fillPoly, drawContours accept
    Vector{<:InputArray} (covariant) instead of requiring the invariant
    Vector{InputArray}.
  • #31: VideoWriter_fourcc(::Char, ::Char, ::Char, ::Char) dispatches
    correctly; added VideoWriter_fourcc(::AbstractString) to mirror
    Python's *"h264" idiom.
  • #58: imdecode accepts a Vector{UInt8} buffer (the natural form
    returned by imencode, file reads, and network responses).
  • #60: calibrateCamera, calibrateCameraExtended,
    calibrateCameraRO, calibrateCameraROExtended accept
    Vector{<:InputArray} (covariant).

Cleanups

  • Hand-written overloads consolidated into src/cv_manual_wrap.jl (#77).
  • size_t is now const size_t = Csize_t (was a non-const global with
    a dead __init__ reassignment); Mat/Vec shed redundant fields;
    Vec raises DimensionMismatch instead of a bare String (#78).

Compat

  • Requires OpenCV_jll 4.13 (bumped in v4.7.0).

Merged pull requests:

  • Accept covariant Vector{<:InputArray} in calibrateCamera variants (#71) (@ViralBShah)
  • Accept covariant Vector{<:InputArray} in polylines, fillPoly, drawContours (#72) (@ViralBShah)
  • Accept Vector{UInt8} buffer in imdecode (#73) (@ViralBShah)
  • Fix VideoWriter_fourcc dispatch and add String form (#74) (@ViralBShah)
  • Add regression test for split + downstream use (closes #5) (#75) (@ViralBShah)
  • Vendor the Julia binding generator and ship wrappers in-repo (#49) (#76) (@ViralBShah)
  • Consolidate patch files into existing manual-wrap locations (#77) (@ViralBShah)
  • Tighten Mat/Vec/cv_cxx/fileio hygiene (#78) (@ViralBShah)

Closed issues:

  • no method matching jlopencv_core_Mat_mutable_data(::OpenCV.CxxMatDereferenced) (#5)
  • Cannot open video file in ubuntu (#11)
  • Type signature issue with "polylines" (#18)
  • Bug: OpenCV.VideoWriter_fourcc raises error (#31)
  • Feature request: FileIO.jl integration (#34)
  • Cannot open image in Ubuntu (#56)
  • MethodError when using OpenCV.imdecode (#58)
  • Types for vectors of arrays, like in calibrateCamera, need to be Vector{<:AbstractArray{T,3}} instead of Vector{AbstractArray{T,3}} (#60)
  • OpenCV.jl fails to compile with Julia 1.12.1 (#61)