mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
Merge branch 4.x
This commit is contained in:
@@ -1132,8 +1132,8 @@ protected:
|
||||
virtual void clear();
|
||||
|
||||
const Mat& getDescriptors() const;
|
||||
const Mat getDescriptor( int imgIdx, int localDescIdx ) const;
|
||||
const Mat getDescriptor( int globalDescIdx ) const;
|
||||
Mat getDescriptor( int imgIdx, int localDescIdx ) const;
|
||||
Mat getDescriptor( int globalDescIdx ) const;
|
||||
void getLocalIdx( int globalDescIdx, int& imgIdx, int& localDescIdx ) const;
|
||||
|
||||
int size() const;
|
||||
|
||||
@@ -315,6 +315,8 @@ struct SIdx
|
||||
const SIdx& used;
|
||||
bool operator()(const SIdx& v) const { return (v.i1 == used.i1 || v.i2 == used.i2); }
|
||||
UsedFinder& operator=(const UsedFinder&) = delete;
|
||||
// To avoid -Wdeprecated-copy warning, copy constructor is needed.
|
||||
UsedFinder(const UsedFinder&) = default;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -312,7 +312,7 @@ void KAZEFeatures::Determinant_Hessian(std::vector<KeyPoint>& kpts)
|
||||
{
|
||||
int level = 0;
|
||||
float smax = 3.0;
|
||||
int npoints = 0, id_repeated = 0;
|
||||
int id_repeated = 0;
|
||||
int left_x = 0, right_x = 0, up_y = 0, down_y = 0;
|
||||
bool is_extremum = false, is_repeated = false, is_out = false;
|
||||
|
||||
@@ -383,7 +383,6 @@ void KAZEFeatures::Determinant_Hessian(std::vector<KeyPoint>& kpts)
|
||||
if (is_out == false) {
|
||||
if (is_repeated == false) {
|
||||
kpts.push_back(kpts_par_ij);
|
||||
npoints++;
|
||||
}
|
||||
else {
|
||||
kpts[id_repeated] = kpts_par_ij;
|
||||
|
||||
@@ -148,10 +148,12 @@ public:
|
||||
{
|
||||
return mask.at<uchar>( (int)(key_pt.pt.y + 0.5f), (int)(key_pt.pt.x + 0.5f) ) == 0;
|
||||
}
|
||||
MaskPredicate& operator=(const MaskPredicate&) = delete;
|
||||
// To avoid -Wdeprecated-copy warning, copy constructor is needed.
|
||||
MaskPredicate(const MaskPredicate&) = default;
|
||||
|
||||
private:
|
||||
const Mat mask;
|
||||
MaskPredicate& operator=(const MaskPredicate&) = delete;
|
||||
};
|
||||
|
||||
void KeyPointsFilter::runByPixelsMask( std::vector<KeyPoint>& keypoints, const Mat& mask )
|
||||
|
||||
@@ -475,7 +475,7 @@ void DescriptorMatcher::DescriptorCollection::clear()
|
||||
mergedDescriptors.release();
|
||||
}
|
||||
|
||||
const Mat DescriptorMatcher::DescriptorCollection::getDescriptor( int imgIdx, int localDescIdx ) const
|
||||
Mat DescriptorMatcher::DescriptorCollection::getDescriptor( int imgIdx, int localDescIdx ) const
|
||||
{
|
||||
CV_Assert( imgIdx < (int)startIdxs.size() );
|
||||
int globalIdx = startIdxs[imgIdx] + localDescIdx;
|
||||
@@ -489,7 +489,7 @@ const Mat& DescriptorMatcher::DescriptorCollection::getDescriptors() const
|
||||
return mergedDescriptors;
|
||||
}
|
||||
|
||||
const Mat DescriptorMatcher::DescriptorCollection::getDescriptor( int globalDescIdx ) const
|
||||
Mat DescriptorMatcher::DescriptorCollection::getDescriptor( int globalDescIdx ) const
|
||||
{
|
||||
CV_Assert( globalDescIdx < size() );
|
||||
return mergedDescriptors.row( globalDescIdx );
|
||||
|
||||
@@ -981,11 +981,20 @@ else // CV_8U
|
||||
__pack01 = v_pack_u(v_round(__dst0 * __nrm2), v_round(__dst1 * __nrm2));
|
||||
v_pack_store(dst + k, __pack01);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__ >= 9
|
||||
// avoid warning "iteration 7 invokes undefined behavior" on Linux ARM64
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Waggressive-loop-optimizations"
|
||||
#endif
|
||||
for( ; k < len; k++ )
|
||||
{
|
||||
dst[k] = saturate_cast<uchar>(rawDst[k]*nrm2);
|
||||
}
|
||||
#if defined(__GNUC__) && __GNUC__ >= 9
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
float* dst = dstMat.ptr<float>(row);
|
||||
|
||||
Reference in New Issue
Block a user