mirror of
https://github.com/opencv/opencv.git
synced 2025-06-12 20:42:53 +08:00
Merge pull request #23017 from asmorkalov:as/qrcode_valgrind
Valgrind issues fix in QRCode detector.
This commit is contained in:
commit
734fb18c4d
@ -2340,9 +2340,8 @@ static inline std::pair<int, int> matchPatternPoints(const vector<Point> &finder
|
|||||||
double QRDecode::getNumModules() {
|
double QRDecode::getNumModules() {
|
||||||
vector<vector<Point>> finderPatterns;
|
vector<vector<Point>> finderPatterns;
|
||||||
double numModulesX = 0., numModulesY = 0.;
|
double numModulesX = 0., numModulesY = 0.;
|
||||||
bool flag = findPatternsVerticesPoints(finderPatterns);
|
if (findPatternsVerticesPoints(finderPatterns)) {
|
||||||
if (flag) {
|
double pattern_distance[4] = {0.,0.,0.,0.};
|
||||||
double pattern_distance[4];
|
|
||||||
for (auto& pattern : finderPatterns) {
|
for (auto& pattern : finderPatterns) {
|
||||||
auto indexes = matchPatternPoints(pattern, original_points);
|
auto indexes = matchPatternPoints(pattern, original_points);
|
||||||
if (indexes == std::make_pair(-1, -1))
|
if (indexes == std::make_pair(-1, -1))
|
||||||
@ -2558,8 +2557,9 @@ bool QRDecode::versionDefinition()
|
|||||||
bool useFinderPattern = false;
|
bool useFinderPattern = false;
|
||||||
const double thresholdFinderPattern = 0.2;
|
const double thresholdFinderPattern = 0.2;
|
||||||
const double roundingError = abs(numModulesByFinderPattern - cvRound(numModulesByFinderPattern));
|
const double roundingError = abs(numModulesByFinderPattern - cvRound(numModulesByFinderPattern));
|
||||||
if (cvRound(versionByFinderPattern) >= 1 && versionByFinderPattern <= 6 && transition_x != transition_y) {
|
|
||||||
if (roundingError < thresholdFinderPattern)
|
if (cvRound(versionByFinderPattern) >= 1 && versionByFinderPattern <= 6. &&
|
||||||
|
transition_x != transition_y && roundingError < thresholdFinderPattern) {
|
||||||
useFinderPattern = true;
|
useFinderPattern = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2775,7 +2775,12 @@ bool QRDecode::curvedDecodingProcess()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QRDecode::QRDecode(bool _useAlignmentMarkers): useAlignmentMarkers(_useAlignmentMarkers) {}
|
QRDecode::QRDecode(bool _useAlignmentMarkers):
|
||||||
|
useAlignmentMarkers(_useAlignmentMarkers),
|
||||||
|
version(0),
|
||||||
|
version_size(0),
|
||||||
|
test_perspective_size(0.f)
|
||||||
|
{}
|
||||||
|
|
||||||
std::string QRCodeDetector::decode(InputArray in, InputArray points,
|
std::string QRCodeDetector::decode(InputArray in, InputArray points,
|
||||||
OutputArray straight_qrcode)
|
OutputArray straight_qrcode)
|
||||||
|
Loading…
Reference in New Issue
Block a user