Commit 19a24950 authored by Ilya Lavrenov's avatar Ilya Lavrenov

fixed IPP related warnings

parent b1a28a52
...@@ -97,6 +97,13 @@ CV_INLINE IppiSize ippiSize(int width, int height) ...@@ -97,6 +97,13 @@ CV_INLINE IppiSize ippiSize(int width, int height)
IppiSize size = { width, height }; IppiSize size = { width, height };
return size; return size;
} }
CV_INLINE IppiSize ippiSize(const cv::Size & _size)
{
IppiSize size = { _size.width, _size.height };
return size;
}
#endif #endif
#ifndef IPPI_CALL #ifndef IPPI_CALL
......
This diff is collapsed.
...@@ -728,10 +728,10 @@ void cv::meanStdDev( InputArray _src, OutputArray _mean, OutputArray _sdv, Input ...@@ -728,10 +728,10 @@ void cv::meanStdDev( InputArray _src, OutputArray _mean, OutputArray _sdv, Input
dcn_stddev = (int)stddev.total(); dcn_stddev = (int)stddev.total();
pstddev = (Ipp64f *)stddev.data; pstddev = (Ipp64f *)stddev.data;
} }
for( int k = cn; k < dcn_mean; k++ ) for( int c = cn; c < dcn_mean; c++ )
pmean[k] = 0; pmean[c] = 0;
for( int k = cn; k < dcn_stddev; k++ ) for( int c = cn; c < dcn_stddev; c++ )
pstddev[k] = 0; pstddev[c] = 0;
IppiSize sz = { cols, rows }; IppiSize sz = { cols, rows };
int type = src.type(); int type = src.type();
if( !mask.empty() ) if( !mask.empty() )
......
...@@ -301,6 +301,7 @@ static ippiReorderFunc ippiSwapChannelsC4RTab[] = ...@@ -301,6 +301,7 @@ static ippiReorderFunc ippiSwapChannelsC4RTab[] =
0, (ippiReorderFunc)ippiSwapChannels_32f_AC4R, 0, 0 0, (ippiReorderFunc)ippiSwapChannels_32f_AC4R, 0, 0
}; };
#if 0
static ippiColor2GrayFunc ippiColor2GrayC3Tab[] = static ippiColor2GrayFunc ippiColor2GrayC3Tab[] =
{ {
(ippiColor2GrayFunc)ippiColorToGray_8u_C3C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_16u_C3C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_8u_C3C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_16u_C3C1R, 0,
...@@ -312,6 +313,7 @@ static ippiColor2GrayFunc ippiColor2GrayC4Tab[] = ...@@ -312,6 +313,7 @@ static ippiColor2GrayFunc ippiColor2GrayC4Tab[] =
(ippiColor2GrayFunc)ippiColorToGray_8u_AC4C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_16u_AC4C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_8u_AC4C1R, 0, (ippiColor2GrayFunc)ippiColorToGray_16u_AC4C1R, 0,
0, (ippiColor2GrayFunc)ippiColorToGray_32f_AC4C1R, 0, 0 0, (ippiColor2GrayFunc)ippiColorToGray_32f_AC4C1R, 0, 0
}; };
#endif
static ippiGeneralFunc ippiRGB2GrayC3Tab[] = static ippiGeneralFunc ippiRGB2GrayC3Tab[] =
{ {
......
...@@ -72,7 +72,7 @@ namespace cv ...@@ -72,7 +72,7 @@ namespace cv
return func(values, dataPointer, step, size) >= 0; return func(values, dataPointer, step, size) >= 0;
} }
bool IPPSet(const cv::Scalar &value, void *dataPointer, int step, IppiSize &size, int channels, int depth) static bool IPPSet(const cv::Scalar &value, void *dataPointer, int step, IppiSize &size, int channels, int depth)
{ {
if( channels == 1 ) if( channels == 1 )
{ {
...@@ -3404,31 +3404,33 @@ class IPPwarpAffineInvoker : ...@@ -3404,31 +3404,33 @@ class IPPwarpAffineInvoker :
public ParallelLoopBody public ParallelLoopBody
{ {
public: public:
IPPwarpAffineInvoker(Mat &_src, Mat &_dst, double (&_coeffs)[2][3], int &_interpolation, int &_borderType, const Scalar &_borderValue, ippiWarpAffineBackFunc _func, bool *_ok) : IPPwarpAffineInvoker(Mat &_src, Mat &_dst, double (&_coeffs)[2][3], int &_interpolation, int &_borderType,
ParallelLoopBody(), src(_src), dst(_dst), mode(_interpolation), coeffs(_coeffs), borderType(_borderType), borderValue(_borderValue), func(_func), ok(_ok) const Scalar &_borderValue, ippiWarpAffineBackFunc _func, bool *_ok) :
{ ParallelLoopBody(), src(_src), dst(_dst), coeffs(_coeffs), mode(_interpolation), borderType(_borderType),
*ok = true; borderValue(_borderValue), func(_func), ok(_ok)
} {
*ok = true;
}
virtual void operator() (const Range& range) const virtual void operator() (const Range& range) const
{ {
IppiSize srcsize = { src.cols, src.rows }; IppiSize srcsize = { src.cols, src.rows };
IppiRect srcroi = { 0, 0, src.cols, src.rows }; IppiRect srcroi = { 0, 0, src.cols, src.rows };
IppiRect dstroi = { 0, range.start, dst.cols, range.end - range.start }; IppiRect dstroi = { 0, range.start, dst.cols, range.end - range.start };
int cnn = src.channels(); int cnn = src.channels();
if( borderType == BORDER_CONSTANT ) if( borderType == BORDER_CONSTANT )
{ {
IppiSize setSize = { dst.cols, range.end - range.start }; IppiSize setSize = { dst.cols, range.end - range.start };
void *dataPointer = dst.data + dst.step[0] * range.start; void *dataPointer = dst.data + dst.step[0] * range.start;
if( !IPPSet( borderValue, dataPointer, (int)dst.step[0], setSize, cnn, src.depth() ) ) if( !IPPSet( borderValue, dataPointer, (int)dst.step[0], setSize, cnn, src.depth() ) )
{ {
*ok = false; *ok = false;
return; return;
} }
} }
if( func( src.data, srcsize, (int)src.step[0], srcroi, dst.data, (int)dst.step[0], dstroi, coeffs, mode ) < 0) ////Aug 2013: problem in IPP 7.1, 8.0 : sometimes function return ippStsCoeffErr if( func( src.data, srcsize, (int)src.step[0], srcroi, dst.data, (int)dst.step[0], dstroi, coeffs, mode ) < 0) ////Aug 2013: problem in IPP 7.1, 8.0 : sometimes function return ippStsCoeffErr
*ok = false; *ok = false;
} }
private: private:
Mat &src; Mat &src;
Mat &dst; Mat &dst;
...@@ -3552,7 +3554,6 @@ class warpPerspectiveInvoker : ...@@ -3552,7 +3554,6 @@ class warpPerspectiveInvoker :
public ParallelLoopBody public ParallelLoopBody
{ {
public: public:
warpPerspectiveInvoker(const Mat &_src, Mat &_dst, double *_M, int _interpolation, warpPerspectiveInvoker(const Mat &_src, Mat &_dst, double *_M, int _interpolation,
int _borderType, const Scalar &_borderValue) : int _borderType, const Scalar &_borderValue) :
ParallelLoopBody(), src(_src), dst(_dst), M(_M), interpolation(_interpolation), ParallelLoopBody(), src(_src), dst(_dst), M(_M), interpolation(_interpolation),
...@@ -3644,32 +3645,34 @@ class IPPwarpPerspectiveInvoker : ...@@ -3644,32 +3645,34 @@ class IPPwarpPerspectiveInvoker :
public ParallelLoopBody public ParallelLoopBody
{ {
public: public:
IPPwarpPerspectiveInvoker(Mat &_src, Mat &_dst, double (&_coeffs)[3][3], int &_interpolation, int &_borderType, const Scalar &_borderValue, ippiWarpPerspectiveBackFunc _func, bool *_ok) : IPPwarpPerspectiveInvoker(Mat &_src, Mat &_dst, double (&_coeffs)[3][3], int &_interpolation,
ParallelLoopBody(), src(_src), dst(_dst), mode(_interpolation), coeffs(_coeffs), borderType(_borderType), borderValue(_borderValue), func(_func), ok(_ok) int &_borderType, const Scalar &_borderValue, ippiWarpPerspectiveBackFunc _func, bool *_ok) :
{ ParallelLoopBody(), src(_src), dst(_dst), coeffs(_coeffs), mode(_interpolation),
*ok = true; borderType(_borderType), borderValue(_borderValue), func(_func), ok(_ok)
} {
*ok = true;
}
virtual void operator() (const Range& range) const virtual void operator() (const Range& range) const
{ {
IppiSize srcsize = {src.cols, src.rows}; IppiSize srcsize = {src.cols, src.rows};
IppiRect srcroi = {0, 0, src.cols, src.rows}; IppiRect srcroi = {0, 0, src.cols, src.rows};
IppiRect dstroi = {0, range.start, dst.cols, range.end - range.start}; IppiRect dstroi = {0, range.start, dst.cols, range.end - range.start};
int cnn = src.channels(); int cnn = src.channels();
if( borderType == BORDER_CONSTANT ) if( borderType == BORDER_CONSTANT )
{ {
IppiSize setSize = {dst.cols, range.end - range.start}; IppiSize setSize = {dst.cols, range.end - range.start};
void *dataPointer = dst.data + dst.step[0] * range.start; void *dataPointer = dst.data + dst.step[0] * range.start;
if( !IPPSet( borderValue, dataPointer, (int)dst.step[0], setSize, cnn, src.depth() ) ) if( !IPPSet( borderValue, dataPointer, (int)dst.step[0], setSize, cnn, src.depth() ) )
{ {
*ok = false; *ok = false;
return; return;
} }
} }
if( func(src.data, srcsize, (int)src.step[0], srcroi, dst.data, (int)dst.step[0], dstroi, coeffs, mode) < 0) if( func(src.data, srcsize, (int)src.step[0], srcroi, dst.data, (int)dst.step[0], dstroi, coeffs, mode) < 0)
*ok = false; *ok = false;
} }
private: private:
Mat &src; Mat &src;
Mat &dst; Mat &dst;
......
...@@ -1317,9 +1317,9 @@ public: ...@@ -1317,9 +1317,9 @@ public:
if( cascade->hid_cascade->ipp_stages ) if( cascade->hid_cascade->ipp_stages )
{ {
IppiRect iequRect = {equRect.x, equRect.y, equRect.width, equRect.height}; IppiRect iequRect = {equRect.x, equRect.y, equRect.width, equRect.height};
ippiRectStdDev_32f_C1R(sum1.ptr<float>(y1), sum1.step, ippiRectStdDev_32f_C1R(sum1.ptr<float>(y1), (int)sum1.step,
sqsum1.ptr<double>(y1), sqsum1.step, sqsum1.ptr<double>(y1), (int)sqsum1.step,
norm1->ptr<float>(y1), norm1->step, norm1->ptr<float>(y1), (int)norm1->step,
ippiSize(ssz.width, ssz.height), iequRect ); ippiSize(ssz.width, ssz.height), iequRect );
int positive = (ssz.width/ystep)*((ssz.height + ystep-1)/ystep); int positive = (ssz.width/ystep)*((ssz.height + ystep-1)/ystep);
...@@ -1340,9 +1340,9 @@ public: ...@@ -1340,9 +1340,9 @@ public:
for( int j = 0; j < cascade->count; j++ ) for( int j = 0; j < cascade->count; j++ )
{ {
if( ippiApplyHaarClassifier_32f_C1R( if( ippiApplyHaarClassifier_32f_C1R(
sum1.ptr<float>(y1), sum1.step, sum1.ptr<float>(y1), (int)sum1.step,
norm1->ptr<float>(y1), norm1->step, norm1->ptr<float>(y1), (int)norm1->step,
mask1->ptr<uchar>(y1), mask1->step, mask1->ptr<uchar>(y1), (int)mask1->step,
ippiSize(ssz.width, ssz.height), &positive, ippiSize(ssz.width, ssz.height), &positive,
cascade->hid_cascade->stage_classifier[j].threshold, cascade->hid_cascade->stage_classifier[j].threshold,
(IppiHaarClassifier_32f*)cascade->hid_cascade->ipp_stages[j]) < 0 ) (IppiHaarClassifier_32f*)cascade->hid_cascade->ipp_stages[j]) < 0 )
......
...@@ -747,7 +747,7 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const ...@@ -747,7 +747,7 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const
float sum = 0; float sum = 0;
#ifdef HAVE_IPP #ifdef HAVE_IPP
ippsDotProd_32f(hist,hist,sz,&sum); ippsDotProd_32f(hist,hist,(int)sz,&sum);
#else #else
for( i = 0; i < sz; i++ ) for( i = 0; i < sz; i++ )
sum += hist[i]*hist[i]; sum += hist[i]*hist[i];
...@@ -755,9 +755,9 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const ...@@ -755,9 +755,9 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const
float scale = 1.f/(std::sqrt(sum)+sz*0.1f), thresh = (float)descriptor->L2HysThreshold; float scale = 1.f/(std::sqrt(sum)+sz*0.1f), thresh = (float)descriptor->L2HysThreshold;
#ifdef HAVE_IPP #ifdef HAVE_IPP
ippsMulC_32f_I(scale,hist,sz); ippsMulC_32f_I(scale,hist,(int)sz);
ippsThreshold_32f_I( hist, sz, thresh, ippCmpGreater ); ippsThreshold_32f_I( hist, (int)sz, thresh, ippCmpGreater );
ippsDotProd_32f(hist,hist,sz,&sum); ippsDotProd_32f(hist,hist,(int)sz,&sum);
#else #else
for( i = 0, sum = 0; i < sz; i++ ) for( i = 0, sum = 0; i < sz; i++ )
{ {
...@@ -768,7 +768,7 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const ...@@ -768,7 +768,7 @@ void HOGCache::normalizeBlockHistogram(float* _hist) const
scale = 1.f/(std::sqrt(sum)+1e-3f); scale = 1.f/(std::sqrt(sum)+1e-3f);
#ifdef HAVE_IPP #ifdef HAVE_IPP
ippsMulC_32f_I(scale,hist,sz); ippsMulC_32f_I(scale,hist,(int)sz);
#else #else
for( i = 0; i < sz; i++ ) for( i = 0; i < sz; i++ )
hist[i] *= scale; hist[i] *= scale;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment