python - 使用 OpenCV 和 Python 将图像的分割部分替换为其他图像

标签 python opencv object-detection object-recognition image-replacement

我想用另一个图像替换图像的一部分。我能够将图像分割成各自的类,例如,在图像链接中,鹰的图片已使用纯色进行分割,以区分对象和背景。

Original Photo
Segmented Photo

是否有一种合适的算法可供我实验,可以通过颜色检测对象并执行对象替换?例如,我想用另一种鸟替换这只鹰(有什么方法可以调整新图像的大小以适合图像当前分割的部分吗?)。

我对这个概念非常陌生,因此我们将不胜感激任何反馈!我绝不是在寻求解决方案,我只是在寻找一个起点(算法、示例代码、教程等)供我进一步探索。非常感谢。

最佳答案

您可以使用这个deeplab v3该模型经过数千张图像的训练,可以正确分割任何常见物体(在您的例子中是鸟类)。这将为您提供蒙版图像。

Segmentation example

现在,如果您尝试仅裁剪前景并将其覆盖在任何其他背景上,只需使用 opencv's seamless clone 即可轻松完成。这使得替换看起来很自然。

Source Result

但是,如果您尝试仅裁剪背景并用另一只鸟替换它,我认为这可能有点棘手。因为您需要首先删除鸟并用可能的背景替换它,然后放置另一只鸟。

我希望您能在这里开始您的旅程并一路进步。

关于python - 使用 OpenCV 和 Python 将图像的分割部分替换为其他图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53929748/

相关文章:

python - 在 Python 2.7 中读取大型 lz4 压缩 JSON 数据集

python - Opencv imshow 是对的,而 imwrite 是错的?

java - OpenCV Android 无缝克隆错误 : (-215) CV_MAT_TYPE(mtype) == m. type()

tensorflow - TensorFlow 对象检测配置文件中的 "num_examples: 2000"是什么意思?

python - tkinter NavigationToolbar2TkAgg 更改 imshow 的 [z] 格式

Python wheel force ABI 到 "none"

java - OpenCV,拉普拉斯算子的变体(Java)

python - 如何在 TensorFlow 对象检测 API 中从头开始训练?

python - 如何在YOLO物体检测中获取边界框的坐标?

python - 程序在 if while 使用循环之后结束,但它不应该结束