Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
94011a1
Remove dead OutputArray List<> write-back scaffolding (issue #1976 st…
shimat Jul 2, 2026
95aff4c
Remove dead InputArray(IEnumerable<Mat>) vector-of-Mat scaffolding
shimat Jul 2, 2026
a77d916
Extend InputArrayRef with Create<T>/IVec factory parity (issue #1976 …
shimat Jul 2, 2026
6775ba0
Migration: quality module to InputArrayRef/OutputArrayRef (issue #197…
shimat Jul 2, 2026
25c8d7e
Migration: Cv2_core.cs arithmetic ops (Add/Subtract/Multiply/Divide/L…
shimat Jul 2, 2026
9f60449
Migration: Cv2_core.cs statistics ops (MeanStdDev/Norm/PSNR/BatchDist…
shimat Jul 2, 2026
c55f591
Migration: Cv2_core.cs channel/geometry ops (MinMaxIdx/Reduce/Extract…
shimat Jul 2, 2026
f539396
Migration: Cv2_core.cs concat/bitwise/compare/min-max ops (HConcat/VC…
shimat Jul 2, 2026
ec2c966
Migration: Cv2_core.cs math/transform ops (Pow/Exp/Log/PolarToCart/Ca…
shimat Jul 2, 2026
22fcccc
Migration: Cv2_core.cs linear algebra ops (CompleteSymm/SetIdentity/D…
shimat Jul 2, 2026
07cfbb9
Migration: Cv2_core.cs polynomial/eigen/covariance/PCA ops (SolveCubi…
shimat Jul 2, 2026
2dfb851
Migration: Cv2_core.cs PCA project/SVD/Mahalanobis/DFT/DCT ops (PCAPr…
shimat Jul 2, 2026
a5b7b9c
Migration: Cv2_core.cs spectrum/random/kmeans ops (MulSpectrums/Randu…
shimat Jul 2, 2026
e31afd5
Migration: Cv2_core.cs remaining stragglers (Sum/CountNonZero/FindNon…
shimat Jul 2, 2026
7178945
Migration: Mat.cs instance methods (CopyTo/ConvertTo/SetTo/Mul/Cross/…
shimat Jul 2, 2026
446c36b
Remove Mat_CvMethods.cs fluent Cv2 wrappers (Mat instance methods)
shimat Jul 2, 2026
dec89b5
Migration: UMat.cs instance methods (CopyTo/ConvertTo/SetTo/Mul/Dot) …
shimat Jul 2, 2026
9813377
Migration: PCA.cs/SVD.cs/LDA.cs/RNG.cs to InputArrayRef/OutputArrayRe…
shimat Jul 2, 2026
d47b554
Migration: Cv2_imgproc.cs (133 methods) + Moments.cs to InputArrayRef…
shimat Jul 2, 2026
ac862af
Migration: Cv2_geometry.cs (42 methods) to InputArrayRef/OutputArrayR…
shimat Jul 2, 2026
03e241a
Migration: Cv2_calib.cs (11 methods) to InputArrayRef/OutputArrayRef/…
shimat Jul 2, 2026
f4d37a6
Migration: Cv2_video.cs (10 methods) to InputArrayRef/OutputArrayRef/…
shimat Jul 2, 2026
2398612
Migration: Cv2_objdetect.cs (7 methods) to InputArrayRef/OutputArrayR…
shimat Jul 2, 2026
d908bd4
Migration: Cv2_stereo.cs (7 methods) to InputArrayRef/OutputArrayRef/…
shimat Jul 2, 2026
c87ebc8
Migration: remaining Modules/ classes (110 files) to InputArrayRef/Ou…
shimat Jul 2, 2026
6ba97cd
Fix test call sites broken by the Modules/ InputArrayRef migration (i…
shimat Jul 2, 2026
3bd6ef7
Delete legacy class-based InputArray/OutputArray/InputOutputArray (is…
shimat Jul 2, 2026
d517a6f
Remove Cv2_experimental.cs PoC scaffolding (issue #1976 step 5, final…
shimat Jul 2, 2026
51a3786
Rename InputArrayRef/OutputArrayRef/InputOutputArrayRef to their fina…
shimat Jul 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
326 changes: 79 additions & 247 deletions src/OpenCvSharp/Cv2/Cv2_calib.FishEye.cs

Large diffs are not rendered by default.

215 changes: 44 additions & 171 deletions src/OpenCvSharp/Cv2/Cv2_calib.cs

Large diffs are not rendered by default.

1,799 changes: 460 additions & 1,339 deletions src/OpenCvSharp/Cv2/Cv2_core.cs

Large diffs are not rendered by default.

46 changes: 0 additions & 46 deletions src/OpenCvSharp/Cv2/Cv2_experimental.cs

This file was deleted.

36 changes: 9 additions & 27 deletions src/OpenCvSharp/Cv2/Cv2_features.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,10 @@ static partial class Cv2
/// <returns>keypoints detected on the image.</returns>
public static KeyPoint[] FAST(InputArray image, int threshold, bool nonmaxSupression = true)
{
if (image is null)
throw new ArgumentNullException(nameof(image));
image.ThrowIfDisposed();

using var kp = new StdVector<KeyPoint>();
NativeMethods.HandleException(
NativeMethods.features_FAST1(image.ToInputProxy(), kp.CvPtr, threshold, nonmaxSupression ? 1 : 0));
GC.KeepAlive(image);
NativeMethods.features_FAST1(image.Proxy, kp.CvPtr, threshold, nonmaxSupression ? 1 : 0));
GC.KeepAlive(image.Source);
return kp.ToArray();
}

Expand All @@ -44,14 +40,10 @@ public static KeyPoint[] FAST(InputArray image, int threshold, bool nonmaxSupres
/// <returns>keypoints detected on the image.</returns>
public static KeyPoint[] FAST(InputArray image, int threshold, bool nonmaxSupression, FASTType type)
{
if (image is null)
throw new ArgumentNullException(nameof(image));
image.ThrowIfDisposed();

using var kp = new StdVector<KeyPoint>();
NativeMethods.HandleException(
NativeMethods.features_FAST2(image.ToInputProxy(), kp.CvPtr, threshold, nonmaxSupression ? 1 : 0, (int)type));
GC.KeepAlive(image);
NativeMethods.features_FAST2(image.Proxy, kp.CvPtr, threshold, nonmaxSupression ? 1 : 0, (int)type));
GC.KeepAlive(image.Source);
return kp.ToArray();
}

Expand All @@ -67,14 +59,10 @@ public static KeyPoint[] FAST(InputArray image, int threshold, bool nonmaxSupres
/// <returns>keypoints detected on the image.</returns>
public static KeyPoint[] AGAST(InputArray image, int threshold, bool nonmaxSuppression, AgastFeatureDetector.DetectorType type)
{
if (image is null)
throw new ArgumentNullException(nameof(image));
image.ThrowIfDisposed();

using var vector = new StdVector<KeyPoint>();
NativeMethods.HandleException(
NativeMethods.xfeatures2d_AGAST(image.ToInputProxy(), vector.CvPtr, threshold, nonmaxSuppression ? 1 : 0, (int) type));
GC.KeepAlive(image);
NativeMethods.xfeatures2d_AGAST(image.Proxy, vector.CvPtr, threshold, nonmaxSuppression ? 1 : 0, (int) type));
GC.KeepAlive(image.Source);
return vector.ToArray();
}

Expand All @@ -93,22 +81,16 @@ public static void DrawKeypoints(
Scalar? color = null,
DrawMatchesFlags flags = DrawMatchesFlags.Default)
{
if (image is null)
throw new ArgumentNullException(nameof(image));
if (outImage is null)
throw new ArgumentNullException(nameof(outImage));
if (keypoints is null)
throw new ArgumentNullException(nameof(keypoints));
image.ThrowIfDisposed();
outImage.ThrowIfDisposed();

var keypointsArray = keypoints.CastOrToArray();
var color0 = color.GetValueOrDefault(Scalar.All(-1));
NativeMethods.HandleException(
NativeMethods.features_drawKeypoints(image.ToInputProxy(), keypointsArray, keypointsArray.Length, outImage.ToInputOutputProxy(), color0, (int)flags));
NativeMethods.features_drawKeypoints(image.Proxy, keypointsArray, keypointsArray.Length, outImage.Proxy, color0, (int)flags));

GC.KeepAlive(image);
GC.KeepAlive(outImage);
GC.KeepAlive(image.Source);
GC.KeepAlive(outImage.Source);
}

/// <summary>
Expand Down
Loading
Loading