如果你需要averageImage为CV_8U类型,可以在计算平均值之后进行数据类型转换。你可以使用cv::convertScaleAbs函数将结果从CV_32S转换为CV_8U。
以下是修改后的代码:
cv::Mat averageImage(height, width, CV_32S);
for (int i = 0; i < height; ++i)
{
for (int j = 0; j < width; ++j)
{
averageImage.at<int>(i, j) = sumImage.at<int>(i, j) / images.size(); // 求平均值
}
}
cv::Mat finalAverageImage;
cv::convertScaleAbs(averageImage, finalAverageImage);
通过使用cv::convertScaleAbs函数,可以将结果正确地转换为CV_8U类型,并保存在finalAverageImage中。这样就能得到符合你要求的averageImage了。
内容由零声教学AI助手提供,问题来源于学员提问