#define CV_OVX_RUN(condition, func, ...)
#endif // HAVE_OPENVX
+// Throw an error in debug mode or try another implementation in release
+#ifdef _DEBUG
+#define VX_DbgThrow(s) CV_Error(cv::Error::StsInternal, (s))
+#else
+#define VX_DbgThrow(s) return false
+#endif
+
#endif // OPENCV_OVX_DEFS_HPP
#ifdef HAVE_OPENVX
-#ifdef _DEBUG
-#define VX_DbgThrow(s) CV_Error(cv::Error::StsInternal, (s))
-#else
-#define VX_DbgThrow(s) return false;
-#endif
-
template<typename T, typename DT>
static bool _openvx_cvt(const T* src, size_t sstep,
DT* dst, size_t dstep, Size continuousSize)
CV_OVX_RUN(
false,
openvx_cvt(src, sstep, dst, dstep, size)
- );
+ )
sstep /= sizeof(src[0]);
dstep /= sizeof(dst[0]);
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
_dst.create(src.dims, src.size, CV_MAKETYPE(_lut.depth(), cn));
Mat dst = _dst.getMat();
-#ifdef HAVE_OPENVX
- if (openvx_LUT(src, dst, lut))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_LUT(src, dst, lut))
CV_IPP_RUN(_src.dims() <= 2, ipp_lut(src, lut, dst));
#include "opencl_kernels_core.hpp"
-#ifdef HAVE_OPENVX
-#define IVX_HIDE_INFO_WARNINGS
-#define IVX_USE_OPENCV
-#include "ivx.hpp"
-#endif
+#include "opencv2/core/openvx/ovx_defs.hpp"
namespace cv
{
for (int c = 1; c < (int)stddev.total(); c++)
pstddev[c] = 0;
}
-
- return true;
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
+
+ return true;
}
}
#endif
Mat src = _src.getMat(), mask = _mask.getMat();
CV_Assert( mask.empty() || mask.type() == CV_8UC1 );
-#ifdef HAVE_OPENVX
- if (openvx_meanStdDev(src, _mean, _sdv, mask))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_meanStdDev(src, _mean, _sdv, mask))
CV_IPP_RUN(IPP_VERSION_X100 >= 700, ipp_meanStdDev(src, _mean, _sdv, mask));
size_t maxidx = loc.y * cols + loc.x + 1;
ofs2idx(src, maxidx, maxIdx);
}
-
- return true;
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
+
+ return true;
}
#endif
Mat src = _src.getMat(), mask = _mask.getMat();
-#ifdef HAVE_OPENVX
- if (openvx_minMaxIdx(src, minVal, maxVal, minIdx, maxIdx, mask))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_minMaxIdx(src, minVal, maxVal, minIdx, maxIdx, mask))
CV_IPP_RUN(IPP_VERSION_X100 >= 700, ipp_minMaxIdx(src, minVal, maxVal, minIdx, maxIdx, mask))
#include "opencl_kernels_imgproc.hpp"
#include "opencv2/core/hal/intrin.hpp"
-#ifdef HAVE_OPENVX
-#define IVX_USE_OPENCV
-#define IVX_HIDE_INFO_WARNINGS
-#include "ivx.hpp"
-#endif
+#include "opencv2/core/openvx/ovx_defs.hpp"
namespace cv
{
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
CV_IPP_RUN((_src.dims() <= 2 || (_src.isContinuous() && _dst.isContinuous() && (_mask.empty() || _mask.isContinuous()))),
ipp_accumulate(_src, _dst, _mask));
-#ifdef HAVE_OPENVX
- if(openvx_accumulate(_src, _dst, _mask, 0.0, VX_ACCUMULATE_OP))
- {
- return;
- }
-#endif
+ CV_OVX_RUN(_src.dims() <= 2,
+ openvx_accumulate(_src, _dst, _mask, 0.0, VX_ACCUMULATE_OP))
Mat src = _src.getMat(), dst = _dst.getMat(), mask = _mask.getMat();
CV_IPP_RUN((_src.dims() <= 2 || (_src.isContinuous() && _dst.isContinuous() && (_mask.empty() || _mask.isContinuous()))),
ipp_accumulate_square(_src, _dst, _mask));
-#ifdef HAVE_OPENVX
- if(openvx_accumulate(_src, _dst, _mask, 0.0, VX_ACCUMULATE_SQUARE_OP))
- {
- return;
- }
-#endif
+ CV_OVX_RUN(_src.dims() <= 2,
+ openvx_accumulate(_src, _dst, _mask, 0.0, VX_ACCUMULATE_SQUARE_OP))
Mat src = _src.getMat(), dst = _dst.getMat(), mask = _mask.getMat();
CV_IPP_RUN((_src.dims() <= 2 || (_src.isContinuous() && _dst.isContinuous() && _mask.isContinuous())), ipp_accumulate_weighted(_src, _dst, alpha, _mask));
-#ifdef HAVE_OPENVX
- if(openvx_accumulate(_src, _dst, _mask, alpha, VX_ACCUMULATE_WEIGHTED_OP))
- {
- return;
- }
-#endif
+ CV_OVX_RUN(_src.dims() <= 2,
+ openvx_accumulate(_src, _dst, _mask, alpha, VX_ACCUMULATE_WEIGHTED_OP))
Mat src = _src.getMat(), dst = _dst.getMat(), mask = _mask.getMat();
}
catch(const WrapperError& e)
{
- //CV_DbgAssert(!"openvx_canny - WrapperError");
- return false;
+ VX_DbgThrow(e.what());
}
catch(const RuntimeError& e)
{
- //CV_DbgAssert(!"openvx_canny - RuntimeError");
- return false;
+ VX_DbgThrow(e.what());
}
return true;
cvFloor(low_thresh),
cvFloor(high_thresh),
aperture_size,
- L2gradient ) );
+ L2gradient ) )
#ifdef HAVE_TEGRA_OPTIMIZATION
if (tegra::useTegra() && tegra::canny(src, dst, low_thresh, high_thresh, aperture_size, L2gradient))
#include "precomp.hpp"
#include "opencl_kernels_imgproc.hpp"
-#ifdef HAVE_OPENVX
-#define IVX_HIDE_INFO_WARNINGS
-#define IVX_USE_OPENCV
-#include "ivx.hpp"
-#endif
+#include "opencv2/core/openvx/ovx_defs.hpp"
/****************************************************************************************\
Sobel & Scharr Derivative Filters
ivx::IVX_CHECK_STATUS(vxuConvolve(ctx, ia, cnv, ib));
}
ctx.setImmediateBorder(prevBorder);
- return true;
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
+
+ return true;
}
}
#endif
}
#endif
-#ifdef HAVE_OPENVX
- if (openvx_sobel(_src, _dst, dx, dy, ksize, scale, delta, borderType))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_sobel(_src, _dst, dx, dy, ksize, scale, delta, borderType))
CV_IPP_RUN(!(ocl::useOpenCL() && _dst.isUMat()), ipp_sobel(_src, _dst, ddepth, dx, dy, ksize, scale, delta, borderType));
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
nimages == 1 && images[0].type() == CV_8UC1 && dims == 1 && _mask.getMat().empty() &&
(!channels || channels[0] == 0) && !accumulate && uniform &&
ranges && ranges[0],
- openvx_calchist(images[0], _hist, histSize[0], ranges[0]));
+ openvx_calchist(images[0], _hist, histSize[0], ranges[0]))
CV_IPP_RUN(nimages == 1 && images[0].type() == CV_8UC1 && dims == 1 && channels &&
channels[0] == 0 && _mask.getMat().empty() && images[0].dims <= 2 &&
}
catch (RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
_dst.create( src.size(), src.type() );
Mat dst = _dst.getMat();
-#ifdef HAVE_OPENVX
- if(openvx_equalize_hist(src, dst))
- {
- return;
- }
-#endif
+ CV_OVX_RUN(true,
+ openvx_equalize_hist(src, dst))
Mutex histogramLockInstance;
#include "precomp.hpp"
#include "opencl_kernels_imgproc.hpp"
-#ifdef HAVE_OPENVX
-#define IVX_HIDE_INFO_WARNINGS
-#define IVX_USE_OPENCV
-#include "ivx.hpp"
-#endif
+#include "opencv2/core/openvx/ovx_defs.hpp"
+
/*
* This file includes the code, contributed by Simon Perreault
* (the function icvMedianBlur_8u_O1)
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
CV_OCL_RUN(_dst.isUMat(), ocl_boxFilter(_src, _dst, ddepth, ksize, anchor, borderType, normalize))
-#ifdef HAVE_OPENVX
- if (openvx_boxfilter(_src, _dst, ddepth, ksize, anchor, normalize, borderType))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_boxfilter(_src, _dst, ddepth, ksize, anchor, normalize, borderType))
Mat src = _src.getMat();
int stype = src.type(), sdepth = CV_MAT_DEPTH(stype), cn = CV_MAT_CN(stype);
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
}
return;
}
-#ifdef HAVE_OPENVX
- if (openvx_gaussianBlur(_src, _dst, ksize, sigma1, sigma2, borderType))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_gaussianBlur(_src, _dst, ksize, sigma1, sigma2, borderType))
#ifdef HAVE_TEGRA_OPTIMIZATION
Mat src = _src.getMat();
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
_dst.create( src0.size(), src0.type() );
Mat dst = _dst.getMat();
-#ifdef HAVE_OPENVX
- if (openvx_medianFilter(_src0, _dst, ksize))
- return;
-#endif
+ CV_OVX_RUN(true,
+ openvx_medianFilter(_src0, _dst, ksize))
CV_IPP_RUN(IPP_VERSION_X100 >= 810 && ksize <= 5, ipp_medianFilter(_src0,_dst, ksize));
#include "opencl_kernels_imgproc.hpp"
#include "opencv2/core/hal/intrin.hpp"
-#ifdef HAVE_OPENVX
-#define IVX_HIDE_INFO_WARNINGS
-#define IVX_USE_OPENCV
-#include "ivx.hpp"
-#endif
+#include "opencv2/core/openvx/ovx_defs.hpp"
namespace cv
{
}
catch (ivx::RuntimeError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
catch (ivx::WrapperError & e)
{
- CV_Error(CV_StsInternal, e.what());
- return false;
+ VX_DbgThrow(e.what());
}
return true;
return thresh;
}
-#ifdef HAVE_OPENVX
- if (openvx_threshold(src, dst, ithresh, imaxval, type))
- return thresh;
-#endif
+ CV_OVX_RUN(true,
+ openvx_threshold(src, dst, ithresh, imaxval, type), (double)ithresh)
thresh = ithresh;
maxval = imaxval;