我在桌子上有一张白纸的图像,有一个不同的方向。如下所示:

现在,我检测了白纸并获得了梯形的坐标。我现在有了另一个图像,比如像这样的键盘:

现在我的目标是用这个键盘取代那张纸。我发现可以使用getPerspectiveTransform。我引用了给here的代码作为我的初学者。在那里,我用output代替了output = imread("paper.jpg"),用input = imread("keyboard.jpg")代替了input。并且早些时候也检测到了白纸的边角。
改造后用键盘代替白纸,效果很好,但包含书桌、铅笔等的背景变黑了。整个背景变黑了,只有键盘取代了白纸。
所以我想知道如何通过透视变换来替换部分,同时仍然保留背景图像。
发布于 2019-03-18 19:24:35
如果你没有编辑文章中的代码,你是在变换键盘,而不是在键盘后面添加原始图像。你需要以某种方式将这两张图片合成在一起。假设键盘图像有一个alpha通道,您可以遵循以下方法:https://www.learnopencv.com/alpha-blending-using-opencv-cpp-python/。
如果它没有alpha通道,您可以创建自己的蒙版,并通过蒙版将输入和输出图像组合在一起:
composite = input
composite[mask != 0] = output * mask祝好运!
https://stackoverflow.com/questions/55171480
复制相似问题