Skip to content

Commit 6d51b80

Browse files
authored
Merge pull request #2022 from shimat/fix/argumentexception-throwif-sweep
Adopt ArgumentNullException/ArgumentOutOfRangeException/ObjectDisposedException Throw helpers
2 parents ab00195 + e382145 commit 6d51b80

132 files changed

Lines changed: 839 additions & 1631 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public class SomeClass : Algorithm
105105

106106
public virtual void SomeMethod(InputArray src) {
107107
ThrowIfDisposed();
108-
if (src is null) throw new ArgumentNullException(nameof(src));
108+
ArgumentNullException.ThrowIfNull(src);
109109
src.ThrowIfDisposed();
110110
NativeMethods.HandleException(NativeMethods.<module>_SomeClass_someMethod(RawPtr, src.CvPtr));
111111
GC.KeepAlive(this);

src/OpenCvSharp.GdipExtensions/BitmapConverter.cs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ public static Mat ToMat(this Bitmap src)
2121
{
2222
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
2323
throw new NotSupportedException("Non-Windows OS are not supported");
24-
if (src is null)
25-
throw new ArgumentNullException(nameof(src));
24+
ArgumentNullException.ThrowIfNull(src);
2625

2726
var w = src.Width;
2827
var h = src.Height;
@@ -48,10 +47,8 @@ public static unsafe void ToMat(this Bitmap src, Mat dst)
4847
{
4948
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
5049
throw new NotSupportedException("Non-Windows OS are not supported");
51-
if (src is null)
52-
throw new ArgumentNullException(nameof(src));
53-
if (dst is null)
54-
throw new ArgumentNullException(nameof(dst));
50+
ArgumentNullException.ThrowIfNull(src);
51+
ArgumentNullException.ThrowIfNull(dst);
5552
if (dst.IsDisposed)
5653
throw new ArgumentException("The specified dst is disposed.", nameof(dst));
5754
if (dst.Depth() != MatType.CV_8U)
@@ -317,8 +314,7 @@ public static Bitmap ToBitmap(this Mat src)
317314
{
318315
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
319316
throw new NotSupportedException("Non-Windows OS are not supported");
320-
if (src is null)
321-
throw new ArgumentNullException(nameof(src));
317+
ArgumentNullException.ThrowIfNull(src);
322318
var pf = src.Channels() switch
323319
{
324320
1 => PixelFormat.Format8bppIndexed,
@@ -340,8 +336,7 @@ public static Bitmap ToBitmap(this Mat src, PixelFormat pf)
340336
{
341337
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
342338
throw new NotSupportedException("Non-Windows OS are not supported");
343-
if (src is null)
344-
throw new ArgumentNullException(nameof(src));
339+
ArgumentNullException.ThrowIfNull(src);
345340
src.ThrowIfDisposed();
346341

347342
var bitmap = new Bitmap(src.Width, src.Height, pf);
@@ -360,10 +355,8 @@ public static unsafe void ToBitmap(this Mat src, Bitmap dst)
360355
{
361356
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
362357
throw new NotSupportedException("Non-Windows OS are not supported");
363-
if (src is null)
364-
throw new ArgumentNullException(nameof(src));
365-
if (dst is null)
366-
throw new ArgumentNullException(nameof(dst));
358+
ArgumentNullException.ThrowIfNull(src);
359+
ArgumentNullException.ThrowIfNull(dst);
367360
if (src.IsDisposed)
368361
throw new ArgumentException("The image is disposed.", nameof(src));
369362
if (src.Depth() != MatType.CV_8U)

src/OpenCvSharp.WpfExtensions/BitmapSourceConverter.cs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public static BitmapSource ToBitmapSource(
4848
/// <returns>BitmapSource</returns>
4949
public static BitmapSource ToBitmapSource(this Bitmap src)
5050
{
51-
if (src is null)
52-
throw new ArgumentNullException(nameof(src));
51+
ArgumentNullException.ThrowIfNull(src);
5352

5453
if (Application.Current?.Dispatcher is null)
5554
{
@@ -104,10 +103,7 @@ private static WriteableBitmap CreateBitmapSourceFromBitmap(Stream stream)
104103
/// <returns>IplImage</returns>
105104
public static Mat ToMat(this BitmapSource src)
106105
{
107-
if (src is null)
108-
{
109-
throw new ArgumentNullException(nameof(src));
110-
}
106+
ArgumentNullException.ThrowIfNull(src);
111107

112108
int w = src.PixelWidth;
113109
int h = src.PixelHeight;
@@ -124,10 +120,8 @@ public static Mat ToMat(this BitmapSource src)
124120
/// <param name="dst">Output Mat</param>
125121
public static void ToMat(this BitmapSource src, Mat dst)
126122
{
127-
if (src is null)
128-
throw new ArgumentNullException(nameof(src));
129-
if (dst is null)
130-
throw new ArgumentNullException(nameof(dst));
123+
ArgumentNullException.ThrowIfNull(src);
124+
ArgumentNullException.ThrowIfNull(dst);
131125
if (src.PixelWidth != dst.Width || src.PixelHeight != dst.Height)
132126
throw new ArgumentException("size of src must be equal to size of dst");
133127
if (dst.Dims > 2)
@@ -241,8 +235,7 @@ public static void ToMat(this BitmapSource src, Mat dst)
241235
/// <returns></returns>
242236
public static void CopyFrom(this Mat mat, BitmapSource wb)
243237
{
244-
if (wb is null)
245-
throw new ArgumentNullException(nameof(wb));
238+
ArgumentNullException.ThrowIfNull(wb);
246239

247240
ToMat(wb, mat);
248241
}

src/OpenCvSharp.WpfExtensions/WriteableBitmapConverter.cs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ private static Mat SwapChannelsIfNeeded(Mat src)
166166
public static WriteableBitmap ToWriteableBitmap(this Mat src, double dpiX, double dpiY, PixelFormat pf,
167167
BitmapPalette? bp)
168168
{
169-
if (src is null)
170-
throw new ArgumentNullException(nameof(src));
169+
ArgumentNullException.ThrowIfNull(src);
171170

172171
var wb = new WriteableBitmap(src.Width, src.Height, dpiX, dpiY, pf, bp);
173172
ToWriteableBitmap(src, wb);
@@ -192,8 +191,7 @@ public static WriteableBitmap ToWriteableBitmap(this Mat src, PixelFormat pf)
192191
/// <returns>WriteableBitmap</returns>
193192
public static WriteableBitmap ToWriteableBitmap(this Mat src)
194193
{
195-
if (src is null)
196-
throw new ArgumentNullException(nameof(src));
194+
ArgumentNullException.ThrowIfNull(src);
197195

198196
PixelFormat pf = GetOptimumPixelFormats(src.Type());
199197
Mat swappedMat = SwapChannelsIfNeeded(src);
@@ -216,10 +214,8 @@ public static WriteableBitmap ToWriteableBitmap(this Mat src)
216214
/// <param name="dst">Output WriteableBitmap</param>
217215
public static void ToWriteableBitmap(Mat src, WriteableBitmap dst)
218216
{
219-
if (src is null)
220-
throw new ArgumentNullException(nameof(src));
221-
if (dst is null)
222-
throw new ArgumentNullException(nameof(dst));
217+
ArgumentNullException.ThrowIfNull(src);
218+
ArgumentNullException.ThrowIfNull(dst);
223219
if (src.Width != dst.PixelWidth || src.Height != dst.PixelHeight)
224220
throw new ArgumentException("size of src must be equal to size of dst");
225221
//if (src.Depth != BitDepth.U8)
@@ -332,8 +328,7 @@ public static void ToWriteableBitmap(Mat src, WriteableBitmap dst)
332328
/// <returns>IplImage</returns>
333329
public static Mat ToMat(this WriteableBitmap src)
334330
{
335-
if (src is null)
336-
throw new ArgumentNullException(nameof(src));
331+
ArgumentNullException.ThrowIfNull(src);
337332

338333
var w = src.PixelWidth;
339334
var h = src.PixelHeight;
@@ -350,10 +345,8 @@ public static Mat ToMat(this WriteableBitmap src)
350345
/// <param name="dst">Output Mat</param>
351346
public static void ToMat(this WriteableBitmap src, Mat dst)
352347
{
353-
if (src is null)
354-
throw new ArgumentNullException(nameof(src));
355-
if (dst is null)
356-
throw new ArgumentNullException(nameof(dst));
348+
ArgumentNullException.ThrowIfNull(src);
349+
ArgumentNullException.ThrowIfNull(dst);
357350
if (src.PixelWidth != dst.Width || src.PixelHeight != dst.Height)
358351
throw new ArgumentException("size of src must be equal to size of dst");
359352
//if (dst.Depth != BitDepth.U8)

src/OpenCvSharp/Cv2/Cv2_calib.FishEye.cs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,8 @@ public static double Calibrate(
234234
out IEnumerable<Mat> rvecs, out IEnumerable<Mat> tvecs,
235235
FishEyeCalibrationFlags flags = 0, TermCriteria? criteria = null)
236236
{
237-
if (objectPoints is null)
238-
throw new ArgumentNullException(nameof(objectPoints));
239-
if (imagePoints is null)
240-
throw new ArgumentNullException(nameof(imagePoints));
237+
ArgumentNullException.ThrowIfNull(objectPoints);
238+
ArgumentNullException.ThrowIfNull(imagePoints);
241239

242240
var criteriaVal = criteria.GetValueOrDefault(
243241
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 100, double.Epsilon));
@@ -339,12 +337,9 @@ public static double StereoCalibrate(
339337
OutputArray r, OutputArray t, FishEyeCalibrationFlags flags = FishEyeCalibrationFlags.FixIntrinsic,
340338
TermCriteria? criteria = null)
341339
{
342-
if (objectPoints is null)
343-
throw new ArgumentNullException(nameof(objectPoints));
344-
if (imagePoints1 is null)
345-
throw new ArgumentNullException(nameof(imagePoints1));
346-
if (imagePoints2 is null)
347-
throw new ArgumentNullException(nameof(imagePoints2));
340+
ArgumentNullException.ThrowIfNull(objectPoints);
341+
ArgumentNullException.ThrowIfNull(imagePoints1);
342+
ArgumentNullException.ThrowIfNull(imagePoints2);
348343

349344
var criteriaVal = criteria.GetValueOrDefault(
350345
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 100, double.Epsilon));

src/OpenCvSharp/Cv2/Cv2_calib.cs

Lines changed: 39 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,8 @@ public static Mat InitCameraMatrix2D(
2828
Size imageSize,
2929
double aspectRatio = 1.0)
3030
{
31-
if (objectPoints is null)
32-
throw new ArgumentNullException(nameof(objectPoints));
33-
if (imagePoints is null)
34-
throw new ArgumentNullException(nameof(imagePoints));
31+
ArgumentNullException.ThrowIfNull(objectPoints);
32+
ArgumentNullException.ThrowIfNull(imagePoints);
3533

3634
var objectPointsPtrs = objectPoints.Select(x => x.CvPtr).ToArray();
3735
var imagePointsPtrs = imagePoints.Select(x => x.CvPtr).ToArray();
@@ -58,10 +56,8 @@ public static Mat InitCameraMatrix2D(
5856
Size imageSize,
5957
double aspectRatio = 1.0)
6058
{
61-
if (objectPoints is null)
62-
throw new ArgumentNullException(nameof(objectPoints));
63-
if (imagePoints is null)
64-
throw new ArgumentNullException(nameof(imagePoints));
59+
ArgumentNullException.ThrowIfNull(objectPoints);
60+
ArgumentNullException.ThrowIfNull(imagePoints);
6561

6662
using var opArray = new ArrayAddress2<Point3f>(objectPoints);
6763
using var ipArray = new ArrayAddress2<Point2f>(imagePoints);
@@ -206,10 +202,8 @@ public static double CalibrateCamera(
206202
CalibrationFlags flags = CalibrationFlags.None,
207203
TermCriteria? criteria = null)
208204
{
209-
if (objectPoints is null)
210-
throw new ArgumentNullException(nameof(objectPoints));
211-
if (imagePoints is null)
212-
throw new ArgumentNullException(nameof(imagePoints));
205+
ArgumentNullException.ThrowIfNull(objectPoints);
206+
ArgumentNullException.ThrowIfNull(imagePoints);
213207

214208
var criteria0 = criteria.GetValueOrDefault(
215209
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 30, Double.Epsilon));
@@ -270,14 +264,10 @@ public static double CalibrateCamera(
270264
CalibrationFlags flags = CalibrationFlags.None,
271265
TermCriteria? criteria = null)
272266
{
273-
if (objectPoints is null)
274-
throw new ArgumentNullException(nameof(objectPoints));
275-
if (imagePoints is null)
276-
throw new ArgumentNullException(nameof(imagePoints));
277-
if (cameraMatrix is null)
278-
throw new ArgumentNullException(nameof(cameraMatrix));
279-
if (distCoeffs is null)
280-
throw new ArgumentNullException(nameof(distCoeffs));
267+
ArgumentNullException.ThrowIfNull(objectPoints);
268+
ArgumentNullException.ThrowIfNull(imagePoints);
269+
ArgumentNullException.ThrowIfNull(cameraMatrix);
270+
ArgumentNullException.ThrowIfNull(distCoeffs);
281271

282272
var criteria0 = criteria.GetValueOrDefault(
283273
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 30, Double.Epsilon));
@@ -335,14 +325,10 @@ public static double RegisterCameras(
335325
InputOutputArray r, InputOutputArray t, OutputArray e, OutputArray f,
336326
OutputArray perViewErrors, CalibrationFlags flags = CalibrationFlags.None, TermCriteria? criteria = null)
337327
{
338-
if (objectPoints1 is null)
339-
throw new ArgumentNullException(nameof(objectPoints1));
340-
if (objectPoints2 is null)
341-
throw new ArgumentNullException(nameof(objectPoints2));
342-
if (imagePoints1 is null)
343-
throw new ArgumentNullException(nameof(imagePoints1));
344-
if (imagePoints2 is null)
345-
throw new ArgumentNullException(nameof(imagePoints2));
328+
ArgumentNullException.ThrowIfNull(objectPoints1);
329+
ArgumentNullException.ThrowIfNull(objectPoints2);
330+
ArgumentNullException.ThrowIfNull(imagePoints1);
331+
ArgumentNullException.ThrowIfNull(imagePoints2);
346332

347333
var criteria0 = criteria.GetValueOrDefault(
348334
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 100, 1e-6));
@@ -405,12 +391,9 @@ public static double CalibrateMultiview(
405391
CalibrationFlags flags = CalibrationFlags.None,
406392
TermCriteria? criteria = null)
407393
{
408-
if (objPoints is null)
409-
throw new ArgumentNullException(nameof(objPoints));
410-
if (imagePoints is null)
411-
throw new ArgumentNullException(nameof(imagePoints));
412-
if (imageSize is null)
413-
throw new ArgumentNullException(nameof(imageSize));
394+
ArgumentNullException.ThrowIfNull(objPoints);
395+
ArgumentNullException.ThrowIfNull(imagePoints);
396+
ArgumentNullException.ThrowIfNull(imageSize);
414397

415398
var criteria0 = criteria.GetValueOrDefault(
416399
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 100, double.Epsilon));
@@ -486,12 +469,9 @@ public static double StereoCalibrate(
486469
CalibrationFlags flags = CalibrationFlags.FixIntrinsic,
487470
TermCriteria? criteria = null)
488471
{
489-
if (objectPoints is null)
490-
throw new ArgumentNullException(nameof(objectPoints));
491-
if (imagePoints1 is null)
492-
throw new ArgumentNullException(nameof(imagePoints1));
493-
if (imagePoints2 is null)
494-
throw new ArgumentNullException(nameof(imagePoints2));
472+
ArgumentNullException.ThrowIfNull(objectPoints);
473+
ArgumentNullException.ThrowIfNull(imagePoints1);
474+
ArgumentNullException.ThrowIfNull(imagePoints2);
495475

496476
var opPtrs = objectPoints.Select(x => x.CvPtr).ToArray();
497477
var ip1Ptrs = imagePoints1.Select(x => x.CvPtr).ToArray();
@@ -554,20 +534,13 @@ public static double StereoCalibrate(
554534
CalibrationFlags flags = CalibrationFlags.FixIntrinsic,
555535
TermCriteria? criteria = null)
556536
{
557-
if (objectPoints is null)
558-
throw new ArgumentNullException(nameof(objectPoints));
559-
if (imagePoints1 is null)
560-
throw new ArgumentNullException(nameof(imagePoints1));
561-
if (imagePoints2 is null)
562-
throw new ArgumentNullException(nameof(imagePoints2));
563-
if (cameraMatrix1 is null)
564-
throw new ArgumentNullException(nameof(cameraMatrix1));
565-
if (distCoeffs1 is null)
566-
throw new ArgumentNullException(nameof(distCoeffs1));
567-
if (cameraMatrix2 is null)
568-
throw new ArgumentNullException(nameof(cameraMatrix2));
569-
if (distCoeffs2 is null)
570-
throw new ArgumentNullException(nameof(distCoeffs2));
537+
ArgumentNullException.ThrowIfNull(objectPoints);
538+
ArgumentNullException.ThrowIfNull(imagePoints1);
539+
ArgumentNullException.ThrowIfNull(imagePoints2);
540+
ArgumentNullException.ThrowIfNull(cameraMatrix1);
541+
ArgumentNullException.ThrowIfNull(distCoeffs1);
542+
ArgumentNullException.ThrowIfNull(cameraMatrix2);
543+
ArgumentNullException.ThrowIfNull(distCoeffs2);
571544

572545
var criteria0 = criteria.GetValueOrDefault(
573546
new TermCriteria(CriteriaTypes.Count | CriteriaTypes.Eps, 30, 1e-6));
@@ -642,14 +615,10 @@ public static void CalibrateHandEye(
642615
OutputArray t_cam2gripper,
643616
HandEyeCalibrationMethod method = HandEyeCalibrationMethod.TSAI)
644617
{
645-
if (R_gripper2base is null)
646-
throw new ArgumentNullException(nameof(R_gripper2base));
647-
if (t_gripper2base is null)
648-
throw new ArgumentNullException(nameof(t_gripper2base));
649-
if (R_target2cam is null)
650-
throw new ArgumentNullException(nameof(R_target2cam));
651-
if (t_target2cam is null)
652-
throw new ArgumentNullException(nameof(t_target2cam));
618+
ArgumentNullException.ThrowIfNull(R_gripper2base);
619+
ArgumentNullException.ThrowIfNull(t_gripper2base);
620+
ArgumentNullException.ThrowIfNull(R_target2cam);
621+
ArgumentNullException.ThrowIfNull(t_target2cam);
653622

654623
var R_gripper2baseArray = R_gripper2base as Mat[] ?? R_gripper2base.ToArray();
655624
var t_gripper2baseArray = t_gripper2base as Mat[] ?? t_gripper2base.ToArray();
@@ -726,14 +695,10 @@ public static void CalibrateRobotWorldHandEye(
726695
OutputArray t_gripper2cam,
727696
RobotWorldHandEyeCalibrationMethod method = RobotWorldHandEyeCalibrationMethod.SHAH)
728697
{
729-
if (R_world2cam is null)
730-
throw new ArgumentNullException(nameof(R_world2cam));
731-
if (t_world2cam is null)
732-
throw new ArgumentNullException(nameof(t_world2cam));
733-
if (R_base2gripper is null)
734-
throw new ArgumentNullException(nameof(R_base2gripper));
735-
if (t_base2gripper is null)
736-
throw new ArgumentNullException(nameof(t_base2gripper));
698+
ArgumentNullException.ThrowIfNull(R_world2cam);
699+
ArgumentNullException.ThrowIfNull(t_world2cam);
700+
ArgumentNullException.ThrowIfNull(R_base2gripper);
701+
ArgumentNullException.ThrowIfNull(t_base2gripper);
737702
var R_world2camArray = R_world2cam as Mat[] ?? R_world2cam.ToArray();
738703
var t_world2camArray = t_world2cam as Mat[] ?? t_world2cam.ToArray();
739704
var R_base2gripperArray = R_base2gripper as Mat[] ?? R_base2gripper.ToArray();
@@ -805,14 +770,10 @@ public static void CalibrateRobotWorldHandEye(
805770
out double[] t_gripper2cam,
806771
RobotWorldHandEyeCalibrationMethod method = RobotWorldHandEyeCalibrationMethod.SHAH)
807772
{
808-
if (R_world2cam is null)
809-
throw new ArgumentNullException(nameof(R_world2cam));
810-
if (t_world2cam is null)
811-
throw new ArgumentNullException(nameof(t_world2cam));
812-
if (R_base2gripper is null)
813-
throw new ArgumentNullException(nameof(R_base2gripper));
814-
if (t_base2gripper is null)
815-
throw new ArgumentNullException(nameof(t_base2gripper));
773+
ArgumentNullException.ThrowIfNull(R_world2cam);
774+
ArgumentNullException.ThrowIfNull(t_world2cam);
775+
ArgumentNullException.ThrowIfNull(R_base2gripper);
776+
ArgumentNullException.ThrowIfNull(t_base2gripper);
816777
var R_world2camArray = R_world2cam as Mat[] ?? R_world2cam.ToArray();
817778
var t_world2camArray = t_world2cam as Mat[] ?? t_world2cam.ToArray();
818779
var R_base2gripperArray = R_base2gripper as Mat[] ?? R_base2gripper.ToArray();

0 commit comments

Comments
 (0)