From b8106e4ba4c29ca01e2b875baa979218bb9084d0 Mon Sep 17 00:00:00 2001 From: Giles Payne Date: Mon, 25 Jul 2022 20:57:53 +0900 Subject: [PATCH] Fix bug in Objective-C/Swift [Mat initWithSize:**] functions --- modules/core/misc/objc/common/Mat.mm | 4 ++-- modules/core/misc/objc/test/MatTest.swift | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/core/misc/objc/common/Mat.mm b/modules/core/misc/objc/common/Mat.mm index ab5e1de6f9..a160d98f67 100644 --- a/modules/core/misc/objc/common/Mat.mm +++ b/modules/core/misc/objc/common/Mat.mm @@ -98,7 +98,7 @@ static bool updateIdx(cv::Mat* mat, std::vector& indices, size_t inc) { - (instancetype)initWithSize:(Size2i*)size type:(int)type { self = [super init]; if (self) { - _nativePtr = new cv::Mat(size.width, size.height, type); + _nativePtr = new cv::Mat(size.height, size.width, type); } return self; } @@ -128,7 +128,7 @@ static bool updateIdx(cv::Mat* mat, std::vector& indices, size_t inc) { self = [super init]; if (self) { cv::Scalar scalerTemp(scalar.val[0].doubleValue, scalar.val[1].doubleValue, scalar.val[2].doubleValue, scalar.val[3].doubleValue); - _nativePtr = new cv::Mat(size.width, size.height, type, scalerTemp); + _nativePtr = new cv::Mat(size.height, size.width, type, scalerTemp); } return self; } diff --git a/modules/core/misc/objc/test/MatTest.swift b/modules/core/misc/objc/test/MatTest.swift index 87f99fb84a..59504781c9 100644 --- a/modules/core/misc/objc/test/MatTest.swift +++ b/modules/core/misc/objc/test/MatTest.swift @@ -17,6 +17,12 @@ class MatTests: OpenCVTestCase { super.tearDown() } + func testInitWithSize() { + let size = Size(width: 7, height: 9) + let mat = Mat(size: size, type: CvType.CV_8U) + assertSizeEquals(size, mat.size()) + } + func testAdjustROI() throws { let roi = gray0.submat(rowStart: 3, rowEnd: 5, colStart: 7, colEnd: 10) let originalroi = roi.clone()