1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-17 07:04:18 +08:00

Merge remote-tracking branch 'upstream/3.4' into merge-3.4

This commit is contained in:
Alexander Alekhin
2019-02-26 14:43:41 +03:00
5 changed files with 15 additions and 9 deletions

View File

@@ -328,7 +328,8 @@ void OpticalFlowPCAFlow::getSystem( OutputArray AOut, OutputArray b1Out, OutputA
Mat b2 = b2Out.getMat();
ocl::Kernel kernel( "fillDCTSampledPoints", _ocl_fillDCTSampledPointsSource );
size_t globSize[] = {features.size(), basisSize.width, basisSize.height};
CV_Assert(basisSize.width > 0 && basisSize.height > 0);
size_t globSize[] = {features.size(), (size_t)basisSize.width, (size_t)basisSize.height};
kernel
.args( cv::ocl::KernelArg::ReadOnlyNoSize( Mat( features ).getUMat( ACCESS_READ ) ),
cv::ocl::KernelArg::WriteOnlyNoSize( A ), (int)features.size(), (int)basisSize.width,
@@ -376,7 +377,8 @@ void OpticalFlowPCAFlow::getSystem( OutputArray A1Out, OutputArray A2Out, Output
Mat b2 = b2Out.getMat();
ocl::Kernel kernel( "fillDCTSampledPoints", _ocl_fillDCTSampledPointsSource );
size_t globSize[] = {features.size(), basisSize.width, basisSize.height};
CV_Assert(basisSize.width > 0 && basisSize.height > 0);
size_t globSize[] = {features.size(), (size_t)basisSize.width, (size_t)basisSize.height};
kernel
.args( cv::ocl::KernelArg::ReadOnlyNoSize( Mat( features ).getUMat( ACCESS_READ ) ),
cv::ocl::KernelArg::WriteOnlyNoSize( A ), (int)features.size(), (int)basisSize.width,

View File

@@ -1941,11 +1941,12 @@ public:
{
if( dIptr[0] == 0 && dIptr[1] == 0)
continue;
short It[4] = {(Jptr[x] << 5) - Iptr[x],
(Jptr[x+cn]<< 5) - Iptr[x],
(Jptr1[x]<< 5) - Iptr[x],
(Jptr1[x+cn]<< 5) - Iptr[x]};
short It[4] = {
(short)((Jptr [x] << 5) - Iptr[x]),
(short)((Jptr [x+cn] << 5) - Iptr[x]),
(short)((Jptr1[x] << 5) - Iptr[x]),
(short)((Jptr1[x+cn] << 5) - Iptr[x])
};
_b1[0] += (float)(It[0]*dIptr[0]);
_b1[1] += (float)(It[1]*dIptr[0]);
_b1[2] += (float)(It[2]*dIptr[0]);

View File

@@ -267,7 +267,9 @@ bool ocl_getAllDCTDescriptorsForImage( const Mat *imgCh, std::vector< GPCPatchDe
const Size sz = imgCh[0].size();
ocl::Kernel kernel( "getPatchDescriptor", ocl::optflow::sparse_matching_gpc_oclsrc,
format( "-DPATCH_RADIUS_DOUBLED=%d -DCV_PI=%f -DSQRT2_INV=%f", PATCH_RADIUS_DOUBLED, CV_PI, SQRT2_INV ) );
size_t globSize[] = {sz.height - 2 * patchRadius, sz.width - 2 * patchRadius};
CV_Assert(sz.height - 2 * patchRadius > 0);
CV_Assert(sz.width - 2 * patchRadius > 0);
size_t globSize[] = {(size_t)(sz.height - 2 * patchRadius), (size_t)(sz.width - 2 * patchRadius)};
UMat out( globSize[0] * globSize[1], GPCPatchDescriptor::nFeatures, CV_64F );
if (
kernel