fix match_template and haar
This commit is contained in:
parent
d6e0ef2710
commit
1e2fb6de30
@ -800,7 +800,7 @@ CvSeq *cv::ocl::OclCascadeClassifier::oclHaarDetectObjects( oclMat &gimg, CvMemS
|
|||||||
|
|
||||||
indexy += sz.height;
|
indexy += sz.height;
|
||||||
}
|
}
|
||||||
if(Context::getContext()->supportsFeature(FEATURE_CL_DOUBLE))
|
if(gsqsum_t.depth() == CV_64F)
|
||||||
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
||||||
else
|
else
|
||||||
gsqsum = gsqsum_t;
|
gsqsum = gsqsum_t;
|
||||||
@ -1294,7 +1294,7 @@ void cv::ocl::OclCascadeClassifierBuf::detectMultiScale(oclMat &gimg, CV_OUT std
|
|||||||
cv::ocl::integral(resizeroi, gimgroi, gimgroisq);
|
cv::ocl::integral(resizeroi, gimgroi, gimgroisq);
|
||||||
indexy += sz.height;
|
indexy += sz.height;
|
||||||
}
|
}
|
||||||
if(Context::getContext()->supportsFeature(FEATURE_CL_DOUBLE))
|
if(gsqsum_t.depth() == CV_64F)
|
||||||
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
||||||
else
|
else
|
||||||
gsqsum = gsqsum_t;
|
gsqsum = gsqsum_t;
|
||||||
@ -1360,7 +1360,7 @@ void cv::ocl::OclCascadeClassifierBuf::detectMultiScale(oclMat &gimg, CV_OUT std
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
cv::ocl::integral(gimg, gsum, gsqsum_t);
|
cv::ocl::integral(gimg, gsum, gsqsum_t);
|
||||||
if(Context::getContext()->supportsFeature(FEATURE_CL_DOUBLE))
|
if(gsqsum_t.depth() == CV_64F)
|
||||||
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
gsqsum_t.convertTo(gsqsum, CV_32FC1);
|
||||||
else
|
else
|
||||||
gsqsum = gsqsum_t;
|
gsqsum = gsqsum_t;
|
||||||
|
@ -250,7 +250,10 @@ namespace cv
|
|||||||
buf.image_sums.resize(1);
|
buf.image_sums.resize(1);
|
||||||
buf.image_sqsums.resize(1);
|
buf.image_sqsums.resize(1);
|
||||||
integral(image.reshape(1), buf.image_sums[0], temp);
|
integral(image.reshape(1), buf.image_sums[0], temp);
|
||||||
|
if(temp.depth() == CV_64F)
|
||||||
temp.convertTo(buf.image_sqsums[0], CV_32FC1);
|
temp.convertTo(buf.image_sqsums[0], CV_32FC1);
|
||||||
|
else
|
||||||
|
buf.image_sqsums[0] = temp;
|
||||||
unsigned long long templ_sqsum = (unsigned long long)sqrSum(templ.reshape(1))[0];
|
unsigned long long templ_sqsum = (unsigned long long)sqrSum(templ.reshape(1))[0];
|
||||||
|
|
||||||
Context *clCxt = image.clCxt;
|
Context *clCxt = image.clCxt;
|
||||||
@ -416,7 +419,12 @@ namespace cv
|
|||||||
{
|
{
|
||||||
buf.image_sums.resize(1);
|
buf.image_sums.resize(1);
|
||||||
buf.image_sqsums.resize(1);
|
buf.image_sqsums.resize(1);
|
||||||
integral(image, buf.image_sums[0], buf.image_sqsums[0]);
|
cv::ocl::oclMat temp;
|
||||||
|
integral(image, buf.image_sums[0], temp);
|
||||||
|
if(temp.depth() == CV_64F)
|
||||||
|
temp.convertTo(buf.image_sqsums[0], CV_32FC1);
|
||||||
|
else
|
||||||
|
buf.image_sqsums[0] = temp;
|
||||||
|
|
||||||
templ_sum[0] = (float)sum(templ)[0];
|
templ_sum[0] = (float)sum(templ)[0];
|
||||||
|
|
||||||
@ -452,10 +460,14 @@ namespace cv
|
|||||||
templ_sum *= scale;
|
templ_sum *= scale;
|
||||||
buf.image_sums.resize(buf.images.size());
|
buf.image_sums.resize(buf.images.size());
|
||||||
buf.image_sqsums.resize(buf.images.size());
|
buf.image_sqsums.resize(buf.images.size());
|
||||||
|
cv::ocl::oclMat temp;
|
||||||
for(int i = 0; i < image.oclchannels(); i ++)
|
for(int i = 0; i < image.oclchannels(); i ++)
|
||||||
{
|
{
|
||||||
integral(buf.images[i], buf.image_sums[i], buf.image_sqsums[i]);
|
integral(buf.images[i], buf.image_sums[i], temp);
|
||||||
|
if(temp.depth() == CV_64F)
|
||||||
|
temp.convertTo(buf.image_sqsums[i], CV_32FC1);
|
||||||
|
else
|
||||||
|
buf.image_sqsums[i] = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(image.oclchannels())
|
switch(image.oclchannels())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user