ZBLOG

cv::Mat averageImage(height, width, CV_8U, cv::Scalar(0)); for (int j = 0; j < width; ++j) { for (int i = 0; i < height; ++i) { unsigned int sum = 0; for (int k = 0; k < images.size(); ++k) { sum += imag...

根据您提供的代码,图像被拉伸的原因可能是由于在计算平均值时没有正确处理像素值的范围。当将灰度图像存储为CV_8U类型时,像素值范围应该在0-255之间。

请尝试使用浮点数进行求和操作,并在计算平均值时将结果转换回uchar类型:

cv::Mat averageImage(height, width, CV_32F, cv::Scalar(0));
for (int j = 0; j < width; ++j)
{
    for (int i = 0; i < height; ++i)
    {
        float sum = 0;
        for (int k = 0; k < images.size(); ++k)
        {
            sum += images[k].at<uchar>(i, j);
        }
        averageImage.at<float>(i, j) = sum / static_cast<float>(images.size());
    }
}

averageImage.convertTo(finalAverageImage, CV_8U);

这样做会确保在计算平均值时保留更多的精度,并避免出现图像拉伸问题。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16764

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?