Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在opencv c+中合并(缝合)2张没有黑点的图像+;_C++_Opencv_Opencv3.0_Homography_Image Stitching - Fatal编程技术网

C++ 如何在opencv c+中合并(缝合)2张没有黑点的图像+;

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

我有两个图像,当我缝合它们时,结果图像中会有一些黑色区域。我将分享这些图片。那么,如果没有黑色区域,我如何缝合它们呢

我有一个单应矩阵,我用ROI缝合它们

但我在OpenCV中搜索了“无缝克隆”,但我还不知道它是否对我有帮助。 我需要建议

我想这样:


如果您不需要混合:

伪代码:

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(第一,第二,掩码,结果)怎么样;