mirror of
https://github.com/opencv/opencv.git
synced 2024-11-29 05:29:54 +08:00
Merge pull request #5781 from jet47:fix-cuda-createContinuous
This commit is contained in:
commit
b2bb7d075a
@ -260,7 +260,7 @@ namespace
|
||||
{
|
||||
const int area = rows * cols;
|
||||
|
||||
if (obj.empty() || obj.type() != type || !obj.isContinuous() || obj.size().area() < area)
|
||||
if (obj.empty() || obj.type() != type || !obj.isContinuous() || obj.size().area() != area)
|
||||
obj.create(1, area, type);
|
||||
|
||||
obj = obj.reshape(obj.channels(), rows);
|
||||
|
@ -361,4 +361,51 @@ CUDA_TEST_P(EnsureSizeIsEnough, BufferReuse)
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(CUDA, EnsureSizeIsEnough, ALL_DEVICES);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// createContinuous
|
||||
|
||||
struct CreateContinuous : testing::TestWithParam<cv::cuda::DeviceInfo>
|
||||
{
|
||||
virtual void SetUp()
|
||||
{
|
||||
cv::cuda::DeviceInfo devInfo = GetParam();
|
||||
cv::cuda::setDevice(devInfo.deviceID());
|
||||
}
|
||||
};
|
||||
|
||||
CUDA_TEST_P(CreateContinuous, BufferReuse)
|
||||
{
|
||||
cv::cuda::GpuMat buffer;
|
||||
|
||||
cv::cuda::createContinuous(100, 100, CV_8UC1, buffer);
|
||||
EXPECT_EQ(100, buffer.rows);
|
||||
EXPECT_EQ(100, buffer.cols);
|
||||
EXPECT_EQ(CV_8UC1, buffer.type());
|
||||
EXPECT_TRUE(buffer.isContinuous());
|
||||
EXPECT_EQ(buffer.cols * sizeof(uchar), buffer.step);
|
||||
|
||||
cv::cuda::createContinuous(10, 1000, CV_8UC1, buffer);
|
||||
EXPECT_EQ(10, buffer.rows);
|
||||
EXPECT_EQ(1000, buffer.cols);
|
||||
EXPECT_EQ(CV_8UC1, buffer.type());
|
||||
EXPECT_TRUE(buffer.isContinuous());
|
||||
EXPECT_EQ(buffer.cols * sizeof(uchar), buffer.step);
|
||||
|
||||
cv::cuda::createContinuous(10, 10, CV_8UC1, buffer);
|
||||
EXPECT_EQ(10, buffer.rows);
|
||||
EXPECT_EQ(10, buffer.cols);
|
||||
EXPECT_EQ(CV_8UC1, buffer.type());
|
||||
EXPECT_TRUE(buffer.isContinuous());
|
||||
EXPECT_EQ(buffer.cols * sizeof(uchar), buffer.step);
|
||||
|
||||
cv::cuda::createContinuous(100, 100, CV_8UC1, buffer);
|
||||
EXPECT_EQ(100, buffer.rows);
|
||||
EXPECT_EQ(100, buffer.cols);
|
||||
EXPECT_EQ(CV_8UC1, buffer.type());
|
||||
EXPECT_TRUE(buffer.isContinuous());
|
||||
EXPECT_EQ(buffer.cols * sizeof(uchar), buffer.step);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(CUDA, CreateContinuous, ALL_DEVICES);
|
||||
|
||||
#endif // HAVE_CUDA
|
||||
|
Loading…
Reference in New Issue
Block a user