fix InitMat使用Scalar赋值mat崩溃

dev_lsy
liusiyang 1 month ago
parent c08187e3ae
commit 2e6bf04df7

@ -175,17 +175,24 @@ cv::Mat AIModel_Impl::InitMat(int channel, int w, int h)
{ {
if (w <= 0 || h <= 0 || channel <= 0 || channel > 3) if (w <= 0 || h <= 0 || channel <= 0 || channel > 3)
{ {
printf("InitMat: invalid params channel=%d w=%d h=%d\n", channel, w, h);
return cv::Mat(); return cv::Mat();
} }
cv::Mat dst; cv::Mat dst;
if (channel == 1) if (channel == 1)
{ {
dst = cv::Mat(h, w, CV_8UC1, cv::Scalar(0)); dst = cv::Mat::zeros(h, w, CV_8UC1);
} }
else else
{ {
dst = cv::Mat(h, w, CV_8UC3, cv::Scalar(0, 0, 0)); dst = cv::Mat::zeros(h, w, CV_8UC3);
}
if (dst.empty() || dst.data == NULL)
{
printf("InitMat: cv::Mat::zeros failed, channel=%d w=%d h=%d\n", channel, w, h);
return cv::Mat();
} }
return dst; return dst;
} }

Loading…
Cancel
Save