Releases: shimat/opencvsharp
Releases · shimat/opencvsharp
Release list
5.0.0.20260806
What's Changed
- Update avalonia monorepo to 12.1.1 by @renovate[bot] in #2107
- Update SkiaSharp to 4.151.0 by @renovate[bot] in #2108
- Update actions/stale action to v11 by @renovate[bot] in #2109
- Expose basic OpenCL runtime controls by @shimat in #2111
- Expose OpenCL platform and device information by @shimat in #2112
Full Changelog: 5.0.0.20260730...5.0.0.20260806
5.0.0.20260730
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
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
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
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
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
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
What's Changed
- Add LINEMOD wrappers for rgbd module by @shimat in #2042
- Update SkiaSharp to 4.150.0 - autoclosed by @renovate[bot] in #2045
- wasm: enable JPEG/PNG/TIFF codecs by @shimat in #2044
- Add a dnn smoke check to the wasm E2E test by @shimat in #2046
Full Changelog: 5.0.0.20260712...5.0.0.20260713
5.0.0.20260712
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
Highlights
This release migrates OpenCvSharp to OpenCV 5 (native + managed) and targets .NET 8+ only. Highlights:
- OpenCV 5 port: native
OpenCvSharpExternrebuilt 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 richerNetintrospection/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), typedMat<T>/SparseMat<T>. - Large internal modernization: SafeHandle +
LibraryImportP/Invoke throughout, allocation-freeInputArray/OutputArrayref structs, lazy/leak-freeMatarithmetic via a managedMatExprtree, 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.ImageSharpto 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
- Add macOS x64/arm64 CI and runtime packages (port of #1947 to 5.x) by @shimat in #1955
- CI: platform-explicit job names + trim macOS PR checks by @shimat in #1964
- Replace SixLabors.ImageSharp with SkiaSharp and LibTiff.NET in tests by @shimat in #1994
- Modernize Docker packaging: drop stale images, fix untested test stages by @shimat in #1995
- Fix stale FFmpeg plugin DLL reference in test project by @shimat in #1997
- Update dependency Microsoft.NET.Test.Sdk to 18.7.0 by @renovate[bot] in #1979
- Update actions/cache action to v6 by @renovate[bot] in https://github.com/shimat/openc...