Skip to content

Commit 1f003fe

Browse files
author
AleksandrPanov
committed
fix readWrite()
1 parent 39dabc1 commit 1f003fe

File tree

2 files changed

+27
-29
lines changed

2 files changed

+27
-29
lines changed

modules/aruco/include/opencv2/aruco_detector.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,6 @@ struct CV_EXPORTS_W DetectorParameters {
235235

236236
/// range [0,1], eq (2) from paper. The parameter tau_i has a direct influence on the processing speed.
237237
CV_PROP_RW float minMarkerLengthRatioOriginalImg;
238-
239-
private:
240-
bool readWrite(const Ptr<FileNode>& readNode = nullptr, const Ptr<FileStorage>& writeStorage = nullptr);
241238
};
242239

243240
/**

modules/aruco/src/aruco_detector.cpp

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,41 @@ namespace aruco {
1515

1616
using namespace std;
1717

18-
bool DetectorParameters::readWrite(const Ptr<FileNode>& readNode, const Ptr<FileStorage>& writeStorage) {
18+
static inline bool readWrite(DetectorParameters &params, const Ptr<FileNode>& readNode = nullptr,
19+
const Ptr<FileStorage>& writeStorage = nullptr) {
1920
CV_Assert(!readNode.empty() || !writeStorage.empty());
2021
bool check = false;
2122

22-
check |= readWriteParameter("adaptiveThreshWinSizeMin", this->adaptiveThreshWinSizeMin, readNode, writeStorage);
23-
check |= readWriteParameter("adaptiveThreshWinSizeMax", this->adaptiveThreshWinSizeMax, readNode, writeStorage);
24-
check |= readWriteParameter("adaptiveThreshWinSizeStep", this->adaptiveThreshWinSizeStep, readNode, writeStorage);
25-
check |= readWriteParameter("adaptiveThreshConstant", this->adaptiveThreshConstant, readNode, writeStorage);
26-
check |= readWriteParameter("minMarkerPerimeterRate", this->minMarkerPerimeterRate, readNode, writeStorage);
27-
check |= readWriteParameter("maxMarkerPerimeterRate", this->maxMarkerPerimeterRate, readNode, writeStorage);
28-
check |= readWriteParameter("polygonalApproxAccuracyRate", this->polygonalApproxAccuracyRate,
23+
check |= readWriteParameter("adaptiveThreshWinSizeMin", params.adaptiveThreshWinSizeMin, readNode, writeStorage);
24+
check |= readWriteParameter("adaptiveThreshWinSizeMax", params.adaptiveThreshWinSizeMax, readNode, writeStorage);
25+
check |= readWriteParameter("adaptiveThreshWinSizeStep", params.adaptiveThreshWinSizeStep, readNode, writeStorage);
26+
check |= readWriteParameter("adaptiveThreshConstant", params.adaptiveThreshConstant, readNode, writeStorage);
27+
check |= readWriteParameter("minMarkerPerimeterRate", params.minMarkerPerimeterRate, readNode, writeStorage);
28+
check |= readWriteParameter("maxMarkerPerimeterRate", params.maxMarkerPerimeterRate, readNode, writeStorage);
29+
check |= readWriteParameter("polygonalApproxAccuracyRate", params.polygonalApproxAccuracyRate,
2930
readNode, writeStorage);
30-
check |= readWriteParameter("minCornerDistanceRate", this->minCornerDistanceRate, readNode, writeStorage);
31-
check |= readWriteParameter("minDistanceToBorder", this->minDistanceToBorder, readNode, writeStorage);
32-
check |= readWriteParameter("minMarkerDistanceRate", this->minMarkerDistanceRate, readNode, writeStorage);
33-
check |= readWriteParameter("cornerRefinementMethod", this->cornerRefinementMethod, readNode, writeStorage);
34-
check |= readWriteParameter("cornerRefinementWinSize", this->cornerRefinementWinSize, readNode, writeStorage);
35-
check |= readWriteParameter("cornerRefinementMaxIterations", this->cornerRefinementMaxIterations,
31+
check |= readWriteParameter("minCornerDistanceRate", params.minCornerDistanceRate, readNode, writeStorage);
32+
check |= readWriteParameter("minDistanceToBorder", params.minDistanceToBorder, readNode, writeStorage);
33+
check |= readWriteParameter("minMarkerDistanceRate", params.minMarkerDistanceRate, readNode, writeStorage);
34+
check |= readWriteParameter("cornerRefinementMethod", params.cornerRefinementMethod, readNode, writeStorage);
35+
check |= readWriteParameter("cornerRefinementWinSize", params.cornerRefinementWinSize, readNode, writeStorage);
36+
check |= readWriteParameter("cornerRefinementMaxIterations", params.cornerRefinementMaxIterations,
3637
readNode, writeStorage);
37-
check |= readWriteParameter("cornerRefinementMinAccuracy", this->cornerRefinementMinAccuracy,
38+
check |= readWriteParameter("cornerRefinementMinAccuracy", params.cornerRefinementMinAccuracy,
3839
readNode, writeStorage);
39-
check |= readWriteParameter("markerBorderBits", this->markerBorderBits, readNode, writeStorage);
40-
check |= readWriteParameter("perspectiveRemovePixelPerCell", this->perspectiveRemovePixelPerCell,
40+
check |= readWriteParameter("markerBorderBits", params.markerBorderBits, readNode, writeStorage);
41+
check |= readWriteParameter("perspectiveRemovePixelPerCell", params.perspectiveRemovePixelPerCell,
4142
readNode, writeStorage);
42-
check |= readWriteParameter("perspectiveRemoveIgnoredMarginPerCell", this->perspectiveRemoveIgnoredMarginPerCell,
43+
check |= readWriteParameter("perspectiveRemoveIgnoredMarginPerCell", params.perspectiveRemoveIgnoredMarginPerCell,
4344
readNode, writeStorage);
44-
check |= readWriteParameter("maxErroneousBitsInBorderRate", this->maxErroneousBitsInBorderRate,
45+
check |= readWriteParameter("maxErroneousBitsInBorderRate", params.maxErroneousBitsInBorderRate,
4546
readNode, writeStorage);
46-
check |= readWriteParameter("minOtsuStdDev", this->minOtsuStdDev, readNode, writeStorage);
47-
check |= readWriteParameter("errorCorrectionRate", this->errorCorrectionRate, readNode, writeStorage);
47+
check |= readWriteParameter("minOtsuStdDev", params.minOtsuStdDev, readNode, writeStorage);
48+
check |= readWriteParameter("errorCorrectionRate", params.errorCorrectionRate, readNode, writeStorage);
4849
// new aruco 3 functionality
49-
check |= readWriteParameter("useAruco3Detection", this->useAruco3Detection, readNode, writeStorage);
50-
check |= readWriteParameter("minSideLengthCanonicalImg", this->minSideLengthCanonicalImg, readNode, writeStorage);
51-
check |= readWriteParameter("minMarkerLengthRatioOriginalImg", this->minMarkerLengthRatioOriginalImg,
50+
check |= readWriteParameter("useAruco3Detection", params.useAruco3Detection, readNode, writeStorage);
51+
check |= readWriteParameter("minSideLengthCanonicalImg", params.minSideLengthCanonicalImg, readNode, writeStorage);
52+
check |= readWriteParameter("minMarkerLengthRatioOriginalImg", params.minMarkerLengthRatioOriginalImg,
5253
readNode, writeStorage);
5354
return check;
5455
}
@@ -57,14 +58,14 @@ bool DetectorParameters::readDetectorParameters(const FileNode& fn) {
5758
if(fn.empty())
5859
return false;
5960
Ptr<FileNode> pfn = makePtr<FileNode>(fn);
60-
return readWrite(pfn);
61+
return readWrite(*this, pfn);
6162
}
6263

6364
bool DetectorParameters::writeDetectorParameters(const Ptr<FileStorage>& fs)
6465
{
6566
if (fs.empty() && !fs->isOpened())
6667
return false;
67-
return readWrite(nullptr, fs);
68+
return readWrite(*this, nullptr, fs);
6869
}
6970

7071
static inline bool readWrite(RefineParameters& refineParameters, const Ptr<FileNode>& readNode,

0 commit comments

Comments
 (0)