mirror of
https://github.com/opencv/opencv.git
synced 2024-12-12 15:19:11 +08:00
Merge pull request #12937 from mshabunin:fix-static-4
This commit is contained in:
commit
ca3848d773
@ -1133,6 +1133,7 @@ CV_IMPL void cvFindExtrinsicCameraParams2( const CvMat* objectPoints,
|
|||||||
if( cvDet(&_RR) < 0 )
|
if( cvDet(&_RR) < 0 )
|
||||||
cvScale( &_RRt, &_RRt, -1 );
|
cvScale( &_RRt, &_RRt, -1 );
|
||||||
sc = cvNorm(&_RR);
|
sc = cvNorm(&_RR);
|
||||||
|
CV_Assert(fabs(sc) > DBL_EPSILON);
|
||||||
cvSVD( &_RR, &matW, &matU, &matV, CV_SVD_MODIFY_A + CV_SVD_U_T + CV_SVD_V_T );
|
cvSVD( &_RR, &matW, &matU, &matV, CV_SVD_MODIFY_A + CV_SVD_U_T + CV_SVD_V_T );
|
||||||
cvGEMM( &matU, &matV, 1, 0, 0, &matR, CV_GEMM_A_T );
|
cvGEMM( &matU, &matV, 1, 0, 0, &matR, CV_GEMM_A_T );
|
||||||
cvScale( &_tt, &_t, cvNorm(&matR)/sc );
|
cvScale( &_tt, &_t, cvNorm(&matR)/sc );
|
||||||
|
@ -164,7 +164,9 @@ cv::Mat findHomography1D(cv::InputArray _src,cv::InputArray _dst)
|
|||||||
Mat H = dst_T.inv()*Mat(H_, false)*src_T;
|
Mat H = dst_T.inv()*Mat(H_, false)*src_T;
|
||||||
|
|
||||||
// enforce frobeniusnorm of one
|
// enforce frobeniusnorm of one
|
||||||
double scale = 1.0/cv::norm(H);
|
double scale = cv::norm(H);
|
||||||
|
CV_Assert(fabs(scale) > DBL_EPSILON);
|
||||||
|
scale = 1.0 / scale;
|
||||||
return H*scale;
|
return H*scale;
|
||||||
}
|
}
|
||||||
void polyfit(const Mat& src_x, const Mat& src_y, Mat& dst, int order)
|
void polyfit(const Mat& src_x, const Mat& src_y, Mat& dst, int order)
|
||||||
|
@ -283,84 +283,6 @@ enum BorderTypes {
|
|||||||
//! @addtogroup core_utils
|
//! @addtogroup core_utils
|
||||||
//! @{
|
//! @{
|
||||||
|
|
||||||
//! @cond IGNORED
|
|
||||||
|
|
||||||
//////////////// static assert /////////////////
|
|
||||||
#define CVAUX_CONCAT_EXP(a, b) a##b
|
|
||||||
#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
|
|
||||||
|
|
||||||
#if defined(__clang__)
|
|
||||||
# ifndef __has_extension
|
|
||||||
# define __has_extension __has_feature /* compatibility, for older versions of clang */
|
|
||||||
# endif
|
|
||||||
# if __has_extension(cxx_static_assert)
|
|
||||||
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
|
||||||
# elif __has_extension(c_static_assert)
|
|
||||||
# define CV_StaticAssert(condition, reason) _Static_assert((condition), reason " " #condition)
|
|
||||||
# endif
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
|
||||||
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
|
||||||
# endif
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
# if _MSC_VER >= 1600 /* MSVC 10 */
|
|
||||||
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#ifndef CV_StaticAssert
|
|
||||||
# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302)
|
|
||||||
# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); })
|
|
||||||
# else
|
|
||||||
template <bool x> struct CV_StaticAssert_failed;
|
|
||||||
template <> struct CV_StaticAssert_failed<true> { enum { val = 1 }; };
|
|
||||||
template<int x> struct CV_StaticAssert_test {};
|
|
||||||
# define CV_StaticAssert(condition, reason)\
|
|
||||||
typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast<bool>(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__)
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Suppress warning "-Wdeprecated-declarations" / C4996
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#define CV_DO_PRAGMA(x) __pragma(x)
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#define CV_DO_PRAGMA(x) _Pragma (#x)
|
|
||||||
#else
|
|
||||||
#define CV_DO_PRAGMA(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_START \
|
|
||||||
CV_DO_PRAGMA(warning(push)) \
|
|
||||||
CV_DO_PRAGMA(warning(disable: 4996))
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop))
|
|
||||||
#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405))
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_START \
|
|
||||||
CV_DO_PRAGMA(GCC diagnostic push) \
|
|
||||||
CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop)
|
|
||||||
#else
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_START
|
|
||||||
#define CV_SUPPRESS_DEPRECATED_END
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CV_UNUSED(name) (void)name
|
|
||||||
|
|
||||||
#if defined __GNUC__ && !defined __EXCEPTIONS
|
|
||||||
#define CV_TRY
|
|
||||||
#define CV_CATCH(A, B) for (A B; false; )
|
|
||||||
#define CV_CATCH_ALL if (false)
|
|
||||||
#define CV_THROW(A) abort()
|
|
||||||
#define CV_RETHROW() abort()
|
|
||||||
#else
|
|
||||||
#define CV_TRY try
|
|
||||||
#define CV_CATCH(A, B) catch(const A & B)
|
|
||||||
#define CV_CATCH_ALL catch(...)
|
|
||||||
#define CV_THROW(A) throw A
|
|
||||||
#define CV_RETHROW() throw
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//! @endcond
|
|
||||||
|
|
||||||
/*! @brief Signals an error and raises the exception.
|
/*! @brief Signals an error and raises the exception.
|
||||||
|
|
||||||
By default the function prints information about the error to stderr,
|
By default the function prints information about the error to stderr,
|
||||||
@ -375,14 +297,6 @@ It is possible to alternate error processing by using redirectError().
|
|||||||
*/
|
*/
|
||||||
CV_EXPORTS CV_NORETURN void error(int _code, const String& _err, const char* _func, const char* _file, int _line);
|
CV_EXPORTS CV_NORETURN void error(int _code, const String& _err, const char* _func, const char* _file, int _line);
|
||||||
|
|
||||||
#if defined __GNUC__
|
|
||||||
#define CV_Func __func__
|
|
||||||
#elif defined _MSC_VER
|
|
||||||
#define CV_Func __FUNCTION__
|
|
||||||
#else
|
|
||||||
#define CV_Func ""
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CV_STATIC_ANALYSIS
|
#ifdef CV_STATIC_ANALYSIS
|
||||||
|
|
||||||
// In practice, some macro are not processed correctly (noreturn is not detected).
|
// In practice, some macro are not processed correctly (noreturn is not detected).
|
||||||
|
@ -82,6 +82,92 @@ namespace cv { namespace debug_build_guard { } using namespace debug_build_guard
|
|||||||
#define __CV_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
|
#define __CV_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, N, ...) N
|
||||||
#define __CV_VA_NUM_ARGS(...) __CV_EXPAND(__CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
|
#define __CV_VA_NUM_ARGS(...) __CV_EXPAND(__CV_VA_NUM_ARGS_HELPER(__VA_ARGS__, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
|
||||||
|
|
||||||
|
#if defined __GNUC__
|
||||||
|
#define CV_Func __func__
|
||||||
|
#elif defined _MSC_VER
|
||||||
|
#define CV_Func __FUNCTION__
|
||||||
|
#else
|
||||||
|
#define CV_Func ""
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//! @cond IGNORED
|
||||||
|
|
||||||
|
//////////////// static assert /////////////////
|
||||||
|
#define CVAUX_CONCAT_EXP(a, b) a##b
|
||||||
|
#define CVAUX_CONCAT(a, b) CVAUX_CONCAT_EXP(a,b)
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
# ifndef __has_extension
|
||||||
|
# define __has_extension __has_feature /* compatibility, for older versions of clang */
|
||||||
|
# endif
|
||||||
|
# if __has_extension(cxx_static_assert)
|
||||||
|
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
||||||
|
# elif __has_extension(c_static_assert)
|
||||||
|
# define CV_StaticAssert(condition, reason) _Static_assert((condition), reason " " #condition)
|
||||||
|
# endif
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
# if (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||||
|
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
||||||
|
# endif
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
# if _MSC_VER >= 1600 /* MSVC 10 */
|
||||||
|
# define CV_StaticAssert(condition, reason) static_assert((condition), reason " " #condition)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifndef CV_StaticAssert
|
||||||
|
# if !defined(__clang__) && defined(__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 302)
|
||||||
|
# define CV_StaticAssert(condition, reason) ({ extern int __attribute__((error("CV_StaticAssert: " reason " " #condition))) CV_StaticAssert(); ((condition) ? 0 : CV_StaticAssert()); })
|
||||||
|
# else
|
||||||
|
template <bool x> struct CV_StaticAssert_failed;
|
||||||
|
template <> struct CV_StaticAssert_failed<true> { enum { val = 1 }; };
|
||||||
|
template<int x> struct CV_StaticAssert_test {};
|
||||||
|
# define CV_StaticAssert(condition, reason)\
|
||||||
|
typedef cv::CV_StaticAssert_test< sizeof(cv::CV_StaticAssert_failed< static_cast<bool>(condition) >) > CVAUX_CONCAT(CV_StaticAssert_failed_at_, __LINE__)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Suppress warning "-Wdeprecated-declarations" / C4996
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#define CV_DO_PRAGMA(x) __pragma(x)
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
#define CV_DO_PRAGMA(x) _Pragma (#x)
|
||||||
|
#else
|
||||||
|
#define CV_DO_PRAGMA(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_START \
|
||||||
|
CV_DO_PRAGMA(warning(push)) \
|
||||||
|
CV_DO_PRAGMA(warning(disable: 4996))
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(warning(pop))
|
||||||
|
#elif defined (__clang__) || ((__GNUC__) && (__GNUC__*100 + __GNUC_MINOR__ > 405))
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_START \
|
||||||
|
CV_DO_PRAGMA(GCC diagnostic push) \
|
||||||
|
CV_DO_PRAGMA(GCC diagnostic ignored "-Wdeprecated-declarations")
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_END CV_DO_PRAGMA(GCC diagnostic pop)
|
||||||
|
#else
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_START
|
||||||
|
#define CV_SUPPRESS_DEPRECATED_END
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define CV_UNUSED(name) (void)name
|
||||||
|
|
||||||
|
#if defined __GNUC__ && !defined __EXCEPTIONS
|
||||||
|
#define CV_TRY
|
||||||
|
#define CV_CATCH(A, B) for (A B; false; )
|
||||||
|
#define CV_CATCH_ALL if (false)
|
||||||
|
#define CV_THROW(A) abort()
|
||||||
|
#define CV_RETHROW() abort()
|
||||||
|
#else
|
||||||
|
#define CV_TRY try
|
||||||
|
#define CV_CATCH(A, B) catch(const A & B)
|
||||||
|
#define CV_CATCH_ALL catch(...)
|
||||||
|
#define CV_THROW(A) throw A
|
||||||
|
#define CV_RETHROW() throw
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//! @endcond
|
||||||
|
|
||||||
// undef problematic defines sometimes defined by system headers (windows.h in particular)
|
// undef problematic defines sometimes defined by system headers (windows.h in particular)
|
||||||
#undef small
|
#undef small
|
||||||
#undef min
|
#undef min
|
||||||
@ -654,7 +740,7 @@ class float16_t
|
|||||||
public:
|
public:
|
||||||
#if CV_FP16_TYPE
|
#if CV_FP16_TYPE
|
||||||
|
|
||||||
float16_t() {}
|
float16_t() : h(0) {}
|
||||||
explicit float16_t(float x) { h = (__fp16)x; }
|
explicit float16_t(float x) { h = (__fp16)x; }
|
||||||
operator float() const { return (float)h; }
|
operator float() const { return (float)h; }
|
||||||
static float16_t fromBits(ushort w)
|
static float16_t fromBits(ushort w)
|
||||||
@ -681,7 +767,7 @@ protected:
|
|||||||
__fp16 h;
|
__fp16 h;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
float16_t() {}
|
float16_t() : w(0) {}
|
||||||
explicit float16_t(float x)
|
explicit float16_t(float x)
|
||||||
{
|
{
|
||||||
#if CV_AVX2
|
#if CV_AVX2
|
||||||
|
@ -332,7 +332,8 @@ public:
|
|||||||
int poolingType;
|
int poolingType;
|
||||||
float spatialScale;
|
float spatialScale;
|
||||||
|
|
||||||
PoolingInvoker() : src(0), rois(0), dst(0), mask(0), avePoolPaddedArea(false), nstripes(0),
|
PoolingInvoker() : src(0), rois(0), dst(0), mask(0), pad_l(0), pad_t(0), pad_r(0), pad_b(0),
|
||||||
|
avePoolPaddedArea(false), nstripes(0),
|
||||||
computeMaxIdx(0), poolingType(MAX), spatialScale(0) {}
|
computeMaxIdx(0), poolingType(MAX), spatialScale(0) {}
|
||||||
|
|
||||||
static void run(const Mat& src, const Mat& rois, Mat& dst, Mat& mask, Size kernel,
|
static void run(const Mat& src, const Mat& rois, Mat& dst, Mat& mask, Size kernel,
|
||||||
|
@ -79,7 +79,7 @@ PFMDecoder::~PFMDecoder()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
PFMDecoder::PFMDecoder()
|
PFMDecoder::PFMDecoder() : m_scale_factor(0), m_swap_byte_order(false)
|
||||||
{
|
{
|
||||||
m_strm.close();
|
m_strm.close();
|
||||||
}
|
}
|
||||||
|
@ -1532,6 +1532,7 @@ icvFindContoursInInterval( const CvArr* src,
|
|||||||
tmp_prev->link = 0;
|
tmp_prev->link = 0;
|
||||||
|
|
||||||
// First line. None of runs is binded
|
// First line. None of runs is binded
|
||||||
|
tmp.pt.x = 0;
|
||||||
tmp.pt.y = 0;
|
tmp.pt.y = 0;
|
||||||
CV_WRITE_SEQ_ELEM( tmp, writer );
|
CV_WRITE_SEQ_ELEM( tmp, writer );
|
||||||
upper_line = (CvLinkedRunPoint*)CV_GET_WRITTEN_ELEM( writer );
|
upper_line = (CvLinkedRunPoint*)CV_GET_WRITTEN_ELEM( writer );
|
||||||
|
@ -240,6 +240,7 @@ void HOGDescriptor::computeGradient(InputArray _img, InputOutputArray _grad, Inp
|
|||||||
CV_INSTRUMENT_REGION();
|
CV_INSTRUMENT_REGION();
|
||||||
|
|
||||||
Mat img = _img.getMat();
|
Mat img = _img.getMat();
|
||||||
|
CV_Assert(!img.empty());
|
||||||
CV_Assert( img.type() == CV_8U || img.type() == CV_8UC3 );
|
CV_Assert( img.type() == CV_8U || img.type() == CV_8UC3 );
|
||||||
|
|
||||||
Size gradsize(img.cols + paddingTL.width + paddingBR.width,
|
Size gradsize(img.cols + paddingTL.width + paddingBR.width,
|
||||||
|
Loading…
Reference in New Issue
Block a user