|
|
@ -645,7 +645,7 @@ void erode(const Mat& _src, Mat& dst, const Mat& _kernel, Point anchor, |
|
|
|
} |
|
|
|
} |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
if( borderType == IPL_BORDER_CONSTANT ) |
|
|
|
if( borderType == BORDER_CONSTANT ) |
|
|
|
borderValue = getMaxVal(src.depth()); |
|
|
|
borderValue = getMaxVal(src.depth()); |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
@ -702,7 +702,7 @@ void dilate(const Mat& _src, Mat& dst, const Mat& _kernel, Point anchor, |
|
|
|
} |
|
|
|
} |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
if( borderType == IPL_BORDER_CONSTANT ) |
|
|
|
if( borderType == BORDER_CONSTANT ) |
|
|
|
borderValue = getMinVal(src.depth()); |
|
|
|
borderValue = getMinVal(src.depth()); |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
@ -778,7 +778,7 @@ void filter2D(const Mat& _src, Mat& dst, int ddepth, const Mat& kernel, |
|
|
|
CV_Assert( kernel.type() == CV_32F || kernel.type() == CV_64F ); |
|
|
|
CV_Assert( kernel.type() == CV_32F || kernel.type() == CV_64F ); |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
if( anchor == Point(-1,-1) ) |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
anchor = Point(kernel.cols/2, kernel.rows/2); |
|
|
|
if( borderType == IPL_BORDER_CONSTANT ) |
|
|
|
if( borderType == BORDER_CONSTANT ) |
|
|
|
borderValue = getMinVal(src.depth()); |
|
|
|
borderValue = getMinVal(src.depth()); |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
copyMakeBorder(_src, src, anchor.y, kernel.rows - anchor.y - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
|
anchor.x, kernel.cols - anchor.x - 1, |
|
|
@ -830,11 +830,11 @@ static int borderInterpolate( int p, int len, int borderType ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if( (unsigned)p < (unsigned)len ) |
|
|
|
if( (unsigned)p < (unsigned)len ) |
|
|
|
; |
|
|
|
; |
|
|
|
else if( borderType == IPL_BORDER_REPLICATE ) |
|
|
|
else if( borderType == BORDER_REPLICATE ) |
|
|
|
p = p < 0 ? 0 : len - 1; |
|
|
|
p = p < 0 ? 0 : len - 1; |
|
|
|
else if( borderType == IPL_BORDER_REFLECT || borderType == IPL_BORDER_REFLECT_101 ) |
|
|
|
else if( borderType == BORDER_REFLECT || borderType == BORDER_REFLECT_101 ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int delta = borderType == IPL_BORDER_REFLECT_101; |
|
|
|
int delta = borderType == BORDER_REFLECT_101; |
|
|
|
if( len == 1 ) |
|
|
|
if( len == 1 ) |
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
do |
|
|
|
do |
|
|
@ -846,17 +846,17 @@ static int borderInterpolate( int p, int len, int borderType ) |
|
|
|
} |
|
|
|
} |
|
|
|
while( (unsigned)p >= (unsigned)len ); |
|
|
|
while( (unsigned)p >= (unsigned)len ); |
|
|
|
} |
|
|
|
} |
|
|
|
else if( borderType == IPL_BORDER_WRAP ) |
|
|
|
else if( borderType == BORDER_WRAP ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if( p < 0 ) |
|
|
|
if( p < 0 ) |
|
|
|
p -= ((p-len+1)/len)*len; |
|
|
|
p -= ((p-len+1)/len)*len; |
|
|
|
if( p >= len ) |
|
|
|
if( p >= len ) |
|
|
|
p %= len; |
|
|
|
p %= len; |
|
|
|
} |
|
|
|
} |
|
|
|
else if( borderType == IPL_BORDER_CONSTANT ) |
|
|
|
else if( borderType == BORDER_CONSTANT ) |
|
|
|
p = -1; |
|
|
|
p = -1; |
|
|
|
else |
|
|
|
else |
|
|
|
CV_Error( CV_StsBadArg, "Unknown/unsupported border type" ); |
|
|
|
CV_Error( Error::StsBadArg, "Unknown/unsupported border type" ); |
|
|
|
return p; |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -868,7 +868,7 @@ void copyMakeBorder(const Mat& src, Mat& dst, int top, int bottom, int left, int |
|
|
|
int i, j, k, esz = (int)src.elemSize(); |
|
|
|
int i, j, k, esz = (int)src.elemSize(); |
|
|
|
int width = src.cols*esz, width1 = dst.cols*esz; |
|
|
|
int width = src.cols*esz, width1 = dst.cols*esz; |
|
|
|
|
|
|
|
|
|
|
|
if( borderType == IPL_BORDER_CONSTANT ) |
|
|
|
if( borderType == BORDER_CONSTANT ) |
|
|
|
{ |
|
|
|
{ |
|
|
|
vector<uchar> valvec((src.cols + left + right)*esz); |
|
|
|
vector<uchar> valvec((src.cols + left + right)*esz); |
|
|
|
uchar* val = &valvec[0]; |
|
|
|
uchar* val = &valvec[0]; |
|
|
@ -1304,7 +1304,7 @@ double norm(const Mat& src, int normType, const Mat& mask) |
|
|
|
result = norm_((const double*)sptr, total, cn, normType, result, mptr); |
|
|
|
result = norm_((const double*)sptr, total, cn, normType, result, mptr); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
if( normType0 == NORM_L2 ) |
|
|
|
if( normType0 == NORM_L2 ) |
|
|
@ -1382,7 +1382,7 @@ double norm(const Mat& src1, const Mat& src2, int normType, const Mat& mask) |
|
|
|
result = norm_((const double*)sptr1, (const double*)sptr2, total, cn, normType, result, mptr); |
|
|
|
result = norm_((const double*)sptr1, (const double*)sptr2, total, cn, normType, result, mptr); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
if( normType0 == NORM_L2 ) |
|
|
|
if( normType0 == NORM_L2 ) |
|
|
@ -1441,7 +1441,7 @@ double crossCorr(const Mat& src1, const Mat& src2) |
|
|
|
result += crossCorr_((const double*)sptr1, (const double*)sptr2, total); |
|
|
|
result += crossCorr_((const double*)sptr1, (const double*)sptr2, total); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return result; |
|
|
@ -1574,7 +1574,7 @@ compare_(const _Tp* src1, const _Tp* src2, uchar* dst, size_t total, int cmpop) |
|
|
|
dst[i] = src1[i] > src2[i] ? 255 : 0; |
|
|
|
dst[i] = src1[i] > src2[i] ? 255 : 0; |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsBadArg, "Unknown comparison operation"); |
|
|
|
CV_Error(Error::StsBadArg, "Unknown comparison operation"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1610,7 +1610,7 @@ compareS_(const _Tp* src1, _WTp value, uchar* dst, size_t total, int cmpop) |
|
|
|
dst[i] = src1[i] > value ? 255 : 0; |
|
|
|
dst[i] = src1[i] > value ? 255 : 0; |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsBadArg, "Unknown comparison operation"); |
|
|
|
CV_Error(Error::StsBadArg, "Unknown comparison operation"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -1657,7 +1657,7 @@ void compare(const Mat& src1, const Mat& src2, Mat& dst, int cmpop) |
|
|
|
compare_((const double*)sptr1, (const double*)sptr2, dptr, total, cmpop); |
|
|
|
compare_((const double*)sptr1, (const double*)sptr2, dptr, total, cmpop); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1704,7 +1704,7 @@ void compare(const Mat& src, double value, Mat& dst, int cmpop) |
|
|
|
compareS_((const double*)sptr, value, dptr, total, cmpop); |
|
|
|
compareS_((const double*)sptr, value, dptr, total, cmpop); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -1836,7 +1836,7 @@ bool cmpUlps(const Mat& src1, const Mat& src2, int imaxDiff, double* _realmaxdif |
|
|
|
realmaxdiff = cmpUlpsFlt_((const int64*)sptr1, (const int64*)sptr2, total, imaxDiff, startidx, idx); |
|
|
|
realmaxdiff = cmpUlpsFlt_((const int64*)sptr1, (const int64*)sptr2, total, imaxDiff, startidx, idx); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(_realmaxdiff) |
|
|
|
if(_realmaxdiff) |
|
|
@ -1925,7 +1925,7 @@ int check( const Mat& a, double fmin, double fmax, vector<int>* _idx ) |
|
|
|
checkFlt_((const double*)aptr, total, fmin, fmax, startidx, idx); |
|
|
|
checkFlt_((const double*)aptr, total, fmin, fmax, startidx, idx); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if( idx != 0 ) |
|
|
|
if( idx != 0 ) |
|
|
@ -2344,7 +2344,7 @@ void transform( const Mat& src, Mat& dst, const Mat& transmat, const Mat& _shift |
|
|
|
transform_((const double*)sptr, (double*)dptr, total, scn, dcn, mat); |
|
|
|
transform_((const double*)sptr, (double*)dptr, total, scn, dcn, mat); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2401,7 +2401,7 @@ static void minmax(const Mat& src1, const Mat& src2, Mat& dst, char op) |
|
|
|
minmax_((const double*)sptr1, (const double*)sptr2, (double*)dptr, total, op); |
|
|
|
minmax_((const double*)sptr1, (const double*)sptr2, (double*)dptr, total, op); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2469,7 +2469,7 @@ static void minmax(const Mat& src1, double val, Mat& dst, char op) |
|
|
|
minmax_((const double*)sptr1, saturate_cast<double>(val), (double*)dptr, total, op); |
|
|
|
minmax_((const double*)sptr1, saturate_cast<double>(val), (double*)dptr, total, op); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2541,7 +2541,7 @@ static void muldiv(const Mat& src1, const Mat& src2, Mat& dst, double scale, cha |
|
|
|
muldiv_((const double*)sptr1, (const double*)sptr2, (double*)dptr, total, scale, op); |
|
|
|
muldiv_((const double*)sptr1, (const double*)sptr2, (double*)dptr, total, scale, op); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -2626,7 +2626,7 @@ Scalar mean(const Mat& src, const Mat& mask) |
|
|
|
mean_((const double*)sptr, mptr, total, cn, sum, nz); |
|
|
|
mean_((const double*)sptr, mptr, total, cn, sum, nz); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -2863,7 +2863,7 @@ static void writeElems(std::ostream& out, const void* data, int nelems, int dept |
|
|
|
out.precision(pp); |
|
|
|
out.precision(pp); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
CV_Error(CV_StsUnsupportedFormat, ""); |
|
|
|
CV_Error(Error::StsUnsupportedFormat, ""); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|