Skip to content

Releases: shimat/opencvsharp

5.0.0.20260806

Choose a tag to compare

@shimat shimat released this 06 Aug 14:20
a390f59

What's Changed

Full Changelog: 5.0.0.20260730...5.0.0.20260806

5.0.0.20260730

Choose a tag to compare

@shimat shimat released this 30 Jul 14:27
e9b1ac5

What's Changed

  • Clarify Python API comparison terminology by @shimat in #2097
  • Use a GHCR mirror for manylinux CI by @shimat in #2098
  • Capture symbolized ARM64 crash diagnostics by @shimat in #2099
  • Fix FeaturesMatcher collection overload dropping keypoints by @shimat in #2101
  • Add ICP and Gray-code structured light bindings by @shimat in #2102
  • Fix CharucoDetector returning only the first corner by @shimat in #2105
  • Indent cvTry lambda bodies consistently by @shimat in #2106

Full Changelog: 5.0.0.20260726...5.0.0.20260730

5.0.0.20260726

Choose a tag to compare

@shimat shimat released this 26 Jul 12:39
3b61aaf

What's Changed

  • Enable RTSP capture in Linux runtime and add CI coverage by @shimat in #2084
  • Audit manylinux FFmpeg feature selection by @shimat in #2086
  • Harden managed/native boundaries and CI inputs by @shimat in #2087
  • Build the initial documentation site by @shimat in #2088
  • Re-enable FFmpeg x86-64 assembly on manylinux by @shimat in #2089
  • Migrate and expand OpenCvSharp usage guides by @shimat in #2090
  • Expand OpenCvSharp usage guides by @shimat in #2091
  • Add .NET-specific OpenCvSharp guides by @shimat in #2092
  • Split API members into separate pages by @shimat in #2093
  • Refine and reorganize OpenCvSharp documentation by @shimat in #2094
  • Remove obsolete native preflight helpers by @shimat in #2095

Full Changelog: 5.0.0.20260723...5.0.0.20260726

5.0.0.20260723

Choose a tag to compare

@shimat shimat released this 23 Jul 10:02

What's Changed

  • Fix SolvePnPMethod enum values to match native OpenCV5 numbering by @shimat in #2081
  • Fix more enums carrying stale native values from the OpenCV4->5 migration by @shimat in #2082

Full Changelog: 5.0.0.20260721...5.0.0.20260723

5.0.0.20260721

Choose a tag to compare

@shimat shimat released this 21 Jul 05:09
a52af6b

What's Changed

  • Update SkiaSharp to 4.150.1 by @renovate[bot] in #2070
  • Disable FFmpeg's libdrm autodetection; harden the no-GUI-deps CI check by @shimat in #2072
  • Update actions/setup-dotnet action to v6 by @renovate[bot] in #2074
  • Update dependency Microsoft.NET.Test.Sdk to 18.8.1 by @renovate[bot] in #2073
  • Update dotnet monorepo by @renovate[bot] in #2069
  • Clean up Internal P/Invoke: allocations, UTF-8 paths, LibraryImport by @shimat in #2076
  • Convert WeChatQRCode test model fixtures from Caffe to ONNX by @shimat in #2078
  • Eliminate the remaining classic DllImport entries and dead DllImport comments by @shimat in #2079

Full Changelog: 5.0.0.20260719...5.0.0.20260721

5.0.0.20260719

Choose a tag to compare

@shimat shimat released this 20 Jul 02:17
3f18300

What's Changed

  • Add NativeAOT publish smoke test (win-x64, linux-x64, osx-arm64) by @shimat in #2061
  • Drop params from Mat/UMat ROI constructors; fix related silent-empty-array bugs by @shimat in #2063
  • Collect VSTest blame crash dumps on Windows/macOS CI test failures by @shimat in #2066
  • Convert integer Vec structs to record structs; fix SaturateCast.ToUInt32 negative clamp by @shimat in #2064
  • Add a package smoke test gate before publishing to nuget.org by @shimat in #2068
  • Fix linux-x64 libatomic/libdrm over-link; add a headless native package flavor by @shimat in #2067

Full Changelog: 5.0.0.20260718...5.0.0.20260719

5.0.0.20260718

Choose a tag to compare

@shimat shimat released this 18 Jul 10:31
e122d19

What's Changed

  • docs: link the Blazor WebAssembly live demo in README by @shimat in #2047
  • Modernize bool+out array APIs to direct return values by @shimat in #2048
  • Refresh stale content in copilot-instructions.md by @shimat in #2049
  • Add KinFu family wrappers for rgbd module by @shimat in #2050
  • OpenCV 5.x API coverage: photo, text, saliency, shape, superres, ximgproc gaps by @shimat in #2052
  • Add OpenCV 5 face, img_hash, and line_descriptor APIs by @shimat in #2051
  • Wrap plot, phase_unwrapping, hfs, signal, and xstereo modules by @shimat in #2053
  • Add stitching::detail:: pipeline coverage (warpers, blenders, exposure compensators, seam finders, estimators/bundle adjusters, matchers) by @shimat in #2054
  • Add opencv5 video/tracking/optflow API coverage by @shimat in #2055
  • Document raw array parameters that native code mutates in place by @shimat in #2056
  • Remove TextDetectorCNN/TextDetector (OpenCV 5 dropped the Caffe importer) by @shimat in #2057
  • Remove dead UWP native project and packaging by @shimat in #2058
  • Migrate OpenCvSharp.sln to the .slnx solution format by @shimat in #2059
  • Fill in missing XML doc comments from native OpenCV headers by @shimat in #2060

Full Changelog: 5.0.0.20260713...5.0.0.20260718

5.0.0.20260713

Choose a tag to compare

@shimat shimat released this 13 Jul 11:26
dd25d8c

What's Changed

Full Changelog: 5.0.0.20260712...5.0.0.20260713

5.0.0.20260712

Choose a tag to compare

@shimat shimat released this 12 Jul 12:13
5c9eced

What's Changed

  • Add missing OpenCV 5 geometry APIs; fix stale readNet doc by @shimat in #2000
  • Add SACSegmentation and RegionGrowing3D wrappers for geometry module by @shimat in #2001
  • Normalize cvTry lambda body indentation across OpenCvSharpExtern by @shimat in #2003
  • Fix cv::fisheye::calibrate throwing on OpenCV 5 by @shimat in #2004
  • Fix wrong CALIB_FIX_S1_S2_S3_S4 value and add missing CalibrationFlags by @shimat in #2006
  • Replace Window.ShowImages two-array overload with tuples; clean up Window/CvTrackbar by @shimat in #2007
  • Migrate OpenCvSharp.Analyzers.Tests to xunit v3 by @shimat in #2020
  • Adopt ArgumentNullException/ArgumentOutOfRangeException/ObjectDisposedException Throw helpers by @shimat in #2022
  • Add real OpenBLAS/LAPACK acceleration to Ubuntu Docker builds; bump Analyzer.Testing by @shimat in #2021
  • Fill OpenCV 5.x API gaps in calib/stereo/flann/imgproc/core by @shimat in #2027
  • Close FileNode/FileStorage gaps vs. the native CV_WRAP surface by @shimat in #2028
  • imgcodecs: add Animation, ImageCollection, metadata I/O, imcount (#2009) by @shimat in #2030
  • videoio: registry, custom-stream capture, and property coverage by @shimat in #2031
  • highgui: add pollKey and currentUIFramework wrappers (#2009) by @shimat in #2032
  • dnn/ml: close API coverage gaps from issue #2010 by @shimat in #2033
  • features/xfeatures2d: close all API coverage gaps from issue #2011 by @shimat in #2034
  • objdetect/aruco/bgsegm/barcode: close remaining API coverage gaps from #2013 by @shimat in #2035
  • Add OpenCvSharp.AvaloniaExtensions and a shared Mat pixel-blit primitive by @shimat in #2038
  • wasm: fix native lib naming, disable OpenCL, add a real E2E consumer test by @shimat in #2041

Full Changelog: 5.0.0.20260703...5.0.0.20260712

5.0.0.20260703

Choose a tag to compare

@shimat shimat released this 03 Jul 15:24
d3bb1f3

Highlights

This release migrates OpenCvSharp to OpenCV 5 (native + managed) and targets .NET 8+ only. Highlights:

  • OpenCV 5 port: native OpenCvSharpExtern rebuilt against OpenCV 5.0.0, with module relocations (features2d→features, calib3d split, new ptcloud wrapper) and behavior-change fixes.
  • New high-level DNN APIs: Model (Classification/Detection/Segmentation/Keypoints), text recognition/detection, Tokenizer, TFLite reader, and richer Net introspection/tracing/profiling.
  • New feature & geometry wrappers: ALIKED, DISK, LightGlue, ANNIndex, AffineFeature, USAC polishing, multi-view camera calibration, ptcloud mesh I/O, TrueType text rendering (FontFace), typed Mat<T>/SparseMat<T>.
  • Large internal modernization: SafeHandle + LibraryImport P/Invoke throughout, allocation-free InputArray/OutputArray ref structs, lazy/leak-free Mat arithmetic via a managed MatExpr tree, UTF-8 path/string handling, and removal of several legacy helper types.
  • Infra: macOS x64/arm64 CI restored, Docker packaging cleanup, test project moved off SixLabors.ImageSharp to SkiaSharp/LibTiff.NET, various dependency bumps.

See the full PR list below for details.

Full Changelog: 4.13.0.20260627...5.0.0.20260703

Full changelog (65 PRs)

OpenCV 5 core migration

  • OpenCvSharp5 foundation: OpenCV 5 packaging, .NET 8+ TFMs, docs by @shimat in #1901
  • OpenCV 5 native port: OpenCvSharpExtern compiles against OpenCV 5.0.0 by @shimat in #1903
  • Fix OpenCV 5 CI test failures (type encoding, 1-D Mats, behavior changes) by @shimat in #1907
  • OpenCV 5: rename features2d→features, split calib3d, add ptcloud wrapper by @shimat in #1910
  • ptcloud: wrap RgbdNormals, depth free functions, and Odometry.getNormalsComputer by @shimat in #1911
  • Fix/superpixelseeds test params by @shimat in #1916
  • Fix MatType.IsInteger for OpenCV 5 integer depths; clarify Mat.Dims docs by @shimat in #1931
  • OpenCV 5 migration (5.x integration branch) by @shimat in #1920
  • Expand the 4-to-5 migration guide and spotlight it from the README by @shimat in #1992

DNN

  • Add high-level dnn Model API (Model + Classification/Detection/Segmentation/Keypoints) by @shimat in #1917
  • Add high-level dnn text Model API (TextRecognition + TextDetection EAST/DB) by @shimat in #1918
  • Add dnn TFLite reader, blobFromImageWithParams, imagesFromBlob, batched/soft NMS by @shimat in #1919
  • Add dnn Net introspection: params, layer types, KV cache, getAvailable*, model format by @shimat in #1922
  • Add DNN engine selection (EngineType) and sync Backend/Target enums by @shimat in #1925
  • Add DNN Tokenizer and Net tracing/profiling/finalizeNet/registerOutput by @shimat in #1934
  • Add detailed Net.GetPerfProfileDetailed by @shimat in #1937
  • Wrap dnn Net shape/FLOPS/memory introspection (#1923) by @shimat in #1962

Features / imgproc / calib / ptcloud additions

  • Add OpenCV 5 features wrappers: ALIKED, DISK, LightGlue, ANNIndex, AffineFeature by @shimat in #1926
  • Add geometry/calib functions: solvePnPRefine, decomposeEssentialMat, estimateTranslation2D/3D, fisheye distortPoints overload by @shimat in #1927
  • Add ptcloud mesh / point cloud I/O: loadPointCloud, savePointCloud, loadMesh, saveMesh by @shimat in #1928
  • Add imgproc TrueType text rendering: FontFace + FontFace-based PutText/GetTextSize by @shimat in #1929
  • Add imgproc additions: INTER_NEAREST_EXACT, Filter2DParams overload, findContoursLinkRuns by @shimat in #1930
  • Add AlgorithmHint parameter to warpAffine/warpPerspective/remap/GaussianBlur/cvtColor by @shimat in #1932
  • Add USAC PolishingMethod + findFundamentalMat UsacParams overload by @shimat in #1933
  • Add core MatShape value type and Mat integration by @shimat in #1935
  • Add multi-view camera calibration: registerCameras and calibrateMultiview by @shimat in #1936
  • SparseMat: non-zero element enumeration + Get/Set and ToString cleanup by @shimat in #1959
  • Typed matrices: generic SparseMat redesign and Mat improvements by @shimat in #1961
  • Enable the parked line_descriptor LSDDetector wrapper by @shimat in #1996
  • Polish ConnectedComponents wrappers (doc fix + eager-copy / round-trip efficiency) by @shimat in #1999

Internal modernization

  • Unify blittable std::vector wrappers into a single StdVector (Phase 0) by @shimat in #1940
  • Slim CvObject base + SafeHandle/LibraryImport foundation (Phase 1) by @shimat in #1942
  • Internal Phase 2: migrate P/Invoke from [DllImport] to [LibraryImport] by @shimat in #1943
  • Support UTF-8 / non-ANSI image file paths on Windows (imgcodecs) by @shimat in #1944
  • Support UTF-8 / non-ANSI model paths on Windows (dnn) by @shimat in #1945
  • Internal 1b: unify CvPtrObject on the owned SafeHandle (+ CLAHE pilot) by @shimat in #1946
  • Internal 1b: sweep wrapper classes to SafeHandle args (drop GC.KeepAlive(this)) by @shimat in #1952
  • Standardize on UTF-8 without BOM across the repository by @shimat in #1953
  • Internal 1b: pass SafeHandle to entry points and drop GC.KeepAlive(this) by @shimat in #1958
  • Modernize P/Invoke POD types into namespace interop (#1902) by @shimat in #1963
  • Unify free-function facades into nested Cv2. classes (#1921) by @shimat in #1965
  • Replace BEGIN_WRAP/END_WRAP macros with a cvTry() wrapper by @shimat in #1968
  • Unify native→managed error propagation; drop the managed error callback by @shimat in #1969
  • Eliminate ArrayAddress1; make ArrayAddress2 a scoped ref struct by @shimat in #1970
  • Modernize Window/CvTrackbar; delete DisposableObject (closes #1941) by @shimat in #1972
  • Inline the one PInvokeHelper use and delete the class by @shimat in #1973
  • Make Mat arithmetic lazy and leak-free via a managed MatExpr tree (#1974) by @shimat in #1975
  • Remove InputArray collection blockers from StereoCalibrate/Rectify3Collinear by @shimat in #1977
  • Foundation: allocation-free InputArray/OutputArray ref structs (ArrayProxy proxy-POD path) by @shimat in #1980
  • Migration: move externs to the ArrayProxy ABI (strategy 3) by @shimat in #1983
  • Migration: photo/video/features/xphoto/stitching/aruco/ximgproc/ml/ptcloud to the ArrayProxy ABI (by-pointer) by @shimat in #1986
  • Migration: calib module to the ArrayProxy ABI (by-pointer) + tests by @shimat in #1987
  • Migration: remaining modules to the ArrayProxy ABI (by-pointer) + tests by @shimat in #1988
  • Migration: InputArray/OutputArray/InputOutputArray to allocation-free ref structs (issue #1976 step 4 & 5) by @shimat in #1989
  • Remove WindowsLibraryLoader/Win32Api: unreachable now that the managed lib is net8.0-only by @shimat in #1990
  • Internal: remove dead KeepAlive/ElemPtr, add OpenCvSafeHandle.Null for optional args by @shimat in #1998

CI / Infra / Dependencies

Read more