Merge pull request #27972 from asmorkalov:as/dst_mat_type

Force empty output type where it's defined in API #27972

The PR replaces:
- https://github.com/opencv/opencv/pull/27936
- https://github.com/opencv/opencv/pull/21059

Empty matrix has undefined type, so user code should not relay on the output type, if it's empty. The PR introduces some exceptions:
- copyTo documentation defines, that the method re-create output buffer and set it's type.
- convertTo has output type as parameter and output type is defined and expected.
This commit is contained in:
Alexander Smorkalov
2025-11-10 08:00:17 +03:00
committed by GitHub
parent 386be68f93
commit 64bbaa9f41
6 changed files with 33 additions and 0 deletions

View File

@@ -252,6 +252,7 @@ void Mat::convertTo(OutputArray dst, int type_, double alpha, double beta) const
if (empty())
{
dst.release();
dst.create(size(), type_ >= 0 ? type_ : type());
return;
}
@@ -318,6 +319,7 @@ void UMat::convertTo(OutputArray dst, int type_, double alpha, double beta) cons
if (empty())
{
dst.release();
dst.create(size(), type_ >= 0 ? type_ : type());
return;
}