C++ 如何在opencv c+中合并(缝合)2张没有黑点的图像+;
我有两个图像,当我缝合它们时,结果图像中会有一些黑色区域。我将分享这些图片。那么,如果没有黑色区域,我如何缝合它们呢 我有一个单应矩阵,我用ROI缝合它们 但我在OpenCV中搜索了“无缝克隆”,但我还不知道它是否对我有帮助。 我需要建议 我想这样:C++ 如何在opencv c+中合并(缝合)2张没有黑点的图像+;,c++,opencv,opencv3.0,homography,image-stitching,C++,Opencv,Opencv3.0,Homography,Image Stitching,我有两个图像,当我缝合它们时,结果图像中会有一些黑色区域。我将分享这些图片。那么,如果没有黑色区域,我如何缝合它们呢 我有一个单应矩阵,我用ROI缝合它们 但我在OpenCV中搜索了“无缝克隆”,但我还不知道它是否对我有帮助。 我需要建议 我想这样: 如果您不需要混合: 伪代码: inputs: image A, image B, backgroundColorRange X outputs: image O for each pixel in the output image: i
如果您不需要混合: 伪代码:
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)
在扭曲后不要覆盖,而是写入单独的图像,然后合并,例如不复制黑色pixels@Micka我没有得到。我有这些照片。我如何在没有黑色像素的情况下合并它们?请看:@Mika当然,我希望它有用。这不是一个解决方案。它工作得很慢。您应该给我一个更好的解决方案:)创建掩码,并使用opencv的.setTo、.copyTo和.addWeighted函数对4个不同的单独掩码区域进行操作。想法保持不变。blend::seamlessBlend(第一,第二,掩码,结果)怎么样;