【问题标题】:Averaging of two images with mask使用掩码对两个图像进行平均
【发布时间】:2017-11-16 15:34:05
【问题描述】:

我有两张这样的图片:

我创建了两个蒙版,显示每个图像在场景中的位置。

我创建了显示两个图像交集的蒙版。

我用 cv::bitwise_and(mask_left, mask_right, mask_intersection);

我想把两张图片加在一起。 mask_intersection 的像素是白色的,我想在两个图像上使用像素的平均值。这是结果,我只是在另一个图像上添加一个图像。问题是边界清晰,我想通过仅在mask_intersection 上对两个图像进行平均来解决。

我不知道如何用最简单的方法解决这个问题。

【问题讨论】:

标签: c++ image opencv mask


【解决方案1】:

要平均蒙版相交的两个图像,您可以使用copyTo

假设您有maskIntersectionimage1image2finalImage,代码如下所示:

((image1 + image2) * 0.5).copyTo(finalImage, maskIntersection)

尽管这回答了您对两张图像进行平均的问题,但我认为它不会提供非常好的结果。将两个图像混合在一起通常是一个更复杂的过程。查看this class 以快速了解所需内容。

【讨论】:

  • 我认为这不会给出很好的结果,但感谢您对我的问题的回答以及所需内容的链接。
  • 我们不能只添加因为溢出。这是link如何累积这两个图像。其他代码是工作:)
  • 你应该转换垫子以避免溢出stackoverflow.com/questions/26591889/…
【解决方案2】:

您正在寻找的过程称为blending,您可以使用cv::addWeighted() 来实现它,然后只需将结果乘以遮罩即可切断您不想混合的图像区域。

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 2021-05-20
    • 2018-06-08
    • 2020-04-13
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多