【问题标题】:how to merge (stitch) 2 images without black points in opencv c++如何在opencv c ++中合并(缝合)2个没有黑点的图像
【发布时间】:2020-01-18 02:47:41
【问题描述】:

我有 2 张图像,当我缝合它们时,生成的图像中会有一些黑色区域。我会分享图片。那么如何在没有黑色区域的情况下缝合它们呢?

我有一个单应矩阵,我使用 ROI 拼接它们。

但是我在 OpenCV 中有一个关于“无缝克隆”的搜索,但我还不知道它会帮助我。 我需要建议。

我想要这样: enter image description here

https://www.harrisgeospatial.com/docs/html/images/Mosaic/DiagramUpdateFootprints.png

【问题讨论】:

  • 在变形后不要覆盖,而是写入单独的图像并在之后合并,例如通过不复制黑色像素
  • @Micka 我没有得到。我有这些图像。如何在没有黑色像素的情况下合并它们?
  • @Micka 当然,我希望它有用

标签: c++ opencv opencv3.0 homography image-stitching


【解决方案1】:

如果您不需要混合:

伪代码:

inputs: image A, image B, backgroundColorRange X
outputs: image O

for each pixel in the output image:
    if(pixel(A) == X AND pixel(B) == X) pixel(O) = X;
    else if (pixel(A != X) AND pixel(B == X) pixel(O) = pixel(A);
    else if (pixel(A == X) AND pixel(B == X) pixel(O) = pixel(B);
    else if (pixel(A != X) AND pixel(B != X) pixel(O) = 0.5*pixel(A) + 0.5*pixel(B)

【讨论】:

  • 这不是解决方案。它的工作速度真的很慢。你应该给我一个更好的解决方案:)
  • 创建掩码并使用 opencv 的 .setTo、.copyTo 和 .addWeighted 函数对 4 个不同的单独掩码区域进行操作。这个想法保持不变。
  • blend::seamlessBlend(first, second, mask, result) 怎么样;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多