Merge release 2.4.3
This commit is contained in:
@@ -13,17 +13,17 @@ Calculates an absolute value of each matrix element.
|
||||
:param m: matrix.
|
||||
:param e: matrix expression.
|
||||
|
||||
``abs`` is a meta-function that is expanded to one of :ocv:func:`absdiff` forms:
|
||||
``abs`` is a meta-function that is expanded to one of :ocv:func:`absdiff` or :ocv:func:`convertScaleAbs` forms:
|
||||
|
||||
* ``C = abs(A-B)`` is equivalent to ``absdiff(A, B, C)``
|
||||
|
||||
* ``C = abs(A)`` is equivalent to ``absdiff(A, Scalar::all(0), C)``
|
||||
|
||||
* ``C = Mat_<Vec<uchar,n> >(abs(A*alpha + beta))`` is equivalent to :ocv:funcx:`convertScaleAbs` (A, C, alpha, beta)
|
||||
* ``C = Mat_<Vec<uchar,n> >(abs(A*alpha + beta))`` is equivalent to ``convertScaleAbs(A, C, alpha, beta)``
|
||||
|
||||
The output matrix has the same size and the same type as the input one except for the last case, where ``C`` is ``depth=CV_8U`` .
|
||||
|
||||
.. seealso:: :ref:`MatrixExpressions`, :ocv:func:`absdiff`
|
||||
.. seealso:: :ref:`MatrixExpressions`, :ocv:func:`absdiff`, :ocv:func:`convertScaleAbs`
|
||||
|
||||
|
||||
absdiff
|
||||
|
||||
@@ -59,16 +59,7 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined WIN32 || defined WINCE
|
||||
# ifndef _WIN32_WINNT // This is needed for the declaration of TryEnterCriticalSection in winbase.h with Visual Studio 2005 (and older?)
|
||||
# define _WIN32_WINNT 0x0400 // http://msdn.microsoft.com/en-us/library/ms686857(VS.85).aspx
|
||||
# endif
|
||||
# include <windows.h>
|
||||
# undef small
|
||||
# undef min
|
||||
# undef max
|
||||
# undef abs
|
||||
#else
|
||||
#if !defined WIN32 && !defined WINCE
|
||||
# include <pthread.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -56,7 +56,13 @@
|
||||
#define CV_XADD(addr,delta) _InterlockedExchangeAdd(const_cast<void*>(reinterpret_cast<volatile void*>(addr)), delta)
|
||||
#elif defined __GNUC__
|
||||
|
||||
#if __GNUC__*10 + __GNUC_MINOR__ >= 42
|
||||
#if defined __clang__ && __clang_major__ >= 3
|
||||
#ifdef __ATOMIC_SEQ_CST
|
||||
#define CV_XADD(addr, delta) __c11_atomic_fetch_add((_Atomic(int)*)(addr), (delta), __ATOMIC_SEQ_CST)
|
||||
#else
|
||||
#define CV_XADD(addr, delta) __atomic_fetch_add((_Atomic(int)*)(addr), (delta), 5)
|
||||
#endif
|
||||
#elif __GNUC__*10 + __GNUC_MINOR__ >= 42
|
||||
|
||||
#if !defined WIN32 && (defined __i486__ || defined __i586__ || \
|
||||
defined __i686__ || defined __MMX__ || defined __SSE__ || defined __ppc__)
|
||||
@@ -2460,18 +2466,10 @@ dot(const Vector<_Tp>& v1, const Vector<_Tp>& v2)
|
||||
assert(v1.size() == v2.size());
|
||||
|
||||
_Tw s = 0;
|
||||
if( n > 0 )
|
||||
{
|
||||
const _Tp *ptr1 = &v1[0], *ptr2 = &v2[0];
|
||||
#if CV_ENABLE_UNROLLED
|
||||
const size_t n2 = (n > 4) ? n : 4;
|
||||
for(; i <= n2 - 4; i += 4 )
|
||||
s += (_Tw)ptr1[i]*ptr2[i] + (_Tw)ptr1[i+1]*ptr2[i+1] +
|
||||
(_Tw)ptr1[i+2]*ptr2[i+2] + (_Tw)ptr1[i+3]*ptr2[i+3];
|
||||
#endif
|
||||
for( ; i < n; i++ )
|
||||
s += (_Tw)ptr1[i]*ptr2[i];
|
||||
}
|
||||
const _Tp *ptr1 = &v1[0], *ptr2 = &v2[0];
|
||||
for( ; i < n; i++ )
|
||||
s += (_Tw)ptr1[i]*ptr2[i];
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,12 +25,12 @@ PERF_TEST_P(Size_MatType, addWeighted, TYPICAL_MATS_ADWEIGHTED)
|
||||
|
||||
if (CV_MAT_DEPTH(type) == CV_32S)
|
||||
{
|
||||
//see ticket 1529: absdiff can be without saturation on 32S
|
||||
src1 /= 8;
|
||||
src2 /= 8;
|
||||
// there might be not enough precision for integers
|
||||
src1 /= 2048;
|
||||
src2 /= 2048;
|
||||
}
|
||||
|
||||
TEST_CYCLE() cv::addWeighted( src1, alpha, src2, beta, gamma, dst, dst.type() );
|
||||
|
||||
SANITY_CHECK(dst);
|
||||
SANITY_CHECK(dst, 1);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#ifdef __GNUC__
|
||||
# pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||
# pragma GCC diagnostic ignored "-Wmissing-prototypes" //OSX
|
||||
# ifdef __clang__
|
||||
# pragma GCC diagnostic ignored "-Wmissing-prototypes"
|
||||
# pragma GCC diagnostic ignored "-Wextra"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __OPENCV_PERF_PRECOMP_HPP__
|
||||
|
||||
@@ -430,7 +430,10 @@ void AlgorithmInfo::write(const Algorithm* algo, FileStorage& fs) const
|
||||
nestedAlgo->write(fs);
|
||||
}
|
||||
else
|
||||
CV_Error( CV_StsUnsupportedFormat, "unknown/unsupported parameter type");
|
||||
{
|
||||
string msg = format("unknown/unsupported type of '%s' parameter == %d", pname.c_str(), p.type);
|
||||
CV_Error( CV_StsUnsupportedFormat, msg.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,7 +489,10 @@ void AlgorithmInfo::read(Algorithm* algo, const FileNode& fn) const
|
||||
info->set(algo, pname.c_str(), p.type, &nestedAlgo, true);
|
||||
}
|
||||
else
|
||||
CV_Error( CV_StsUnsupportedFormat, "unknown/unsupported parameter type");
|
||||
{
|
||||
string msg = format("unknown/unsupported type of '%s' parameter == %d", pname.c_str(), p.type);
|
||||
CV_Error( CV_StsUnsupportedFormat, msg.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -777,7 +783,10 @@ void AlgorithmInfo::get(const Algorithm* algo, const char* parameter, int argTyp
|
||||
*(Ptr<Algorithm>*)((uchar*)algo + p->offset);
|
||||
}
|
||||
else
|
||||
CV_Error(CV_StsBadArg, "Unknown/unsupported parameter type");
|
||||
{
|
||||
string message = getErrorMessageForWrongArgumentInGetter(algo->name(), parameter, p->type, argType);
|
||||
CV_Error(CV_StsBadArg, message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -42,6 +42,14 @@
|
||||
|
||||
#include "precomp.hpp"
|
||||
|
||||
#if defined WIN32 || defined WINCE
|
||||
#include <windows.h>
|
||||
#undef small
|
||||
#undef min
|
||||
#undef max
|
||||
#undef abs
|
||||
#endif
|
||||
|
||||
#if defined __linux__ || defined __APPLE__
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -48,8 +48,16 @@
|
||||
|
||||
#include "precomp.hpp"
|
||||
|
||||
#if defined WIN32 || defined WINCE
|
||||
#include <windows.h>
|
||||
#undef small
|
||||
#undef min
|
||||
#undef max
|
||||
#undef abs
|
||||
#endif
|
||||
|
||||
#if defined __SSE2__ || (defined _M_IX86_FP && 2 == _M_IX86_FP)
|
||||
#include "emmintrin.h"
|
||||
#include "emmintrin.h"
|
||||
#endif
|
||||
|
||||
namespace cv
|
||||
|
||||
@@ -43,6 +43,14 @@
|
||||
#include "precomp.hpp"
|
||||
|
||||
#if defined WIN32 || defined _WIN32 || defined WINCE
|
||||
#ifndef _WIN32_WINNT // This is needed for the declaration of TryEnterCriticalSection in winbase.h with Visual Studio 2005 (and older?)
|
||||
#define _WIN32_WINNT 0x0400 // http://msdn.microsoft.com/en-us/library/ms686857(VS.85).aspx
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#undef small
|
||||
#undef min
|
||||
#undef max
|
||||
#undef abs
|
||||
#include <tchar.h>
|
||||
#if defined _MSC_VER
|
||||
#if _MSC_VER >= 1400
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
#ifdef __GNUC__
|
||||
# pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||
# pragma GCC diagnostic ignored "-Wmissing-prototypes" //OSX
|
||||
# ifdef __clang__
|
||||
# pragma GCC diagnostic ignored "-Wmissing-prototypes"
|
||||
# pragma GCC diagnostic ignored "-Wextra"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __OPENCV_TEST_PRECOMP_HPP__
|
||||
|
||||
Reference in New Issue
Block a user