Merge pull request #2703 from jet47:subtract-create-dst-mat
This commit is contained in:
commit
e2c7adc7c4
@ -1562,8 +1562,12 @@ void cv::subtract( InputArray src1, InputArray src2, OutputArray dst,
|
||||
if (dtype == -1 && dst.fixedType())
|
||||
dtype = dst.depth();
|
||||
|
||||
if (!dst.fixedType() || dtype == dst.depth())
|
||||
dtype = CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src1.channels());
|
||||
|
||||
if (!dst.fixedType() || dtype == dst.type())
|
||||
{
|
||||
dst.create(src1.size(), dtype);
|
||||
|
||||
if (dtype == CV_16S)
|
||||
{
|
||||
Mat _dst = dst.getMat();
|
||||
|
@ -1579,3 +1579,13 @@ TEST_P(Mul1, One)
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(Arithm, Mul1, testing::Values(Size(2, 2), Size(1, 1)));
|
||||
|
||||
TEST(Subtract8u8u16s, EmptyOutputMat)
|
||||
{
|
||||
cv::Mat src1 = cv::Mat::zeros(16, 16, CV_8UC1);
|
||||
cv::Mat src2 = cv::Mat::zeros(16, 16, CV_8UC1);
|
||||
cv::Mat dst;
|
||||
cv::subtract(src1, src2, dst, cv::noArray(), CV_16S);
|
||||
ASSERT_FALSE(dst.empty());
|
||||
ASSERT_EQ(0, cv::countNonZero(dst));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user