opencv - 如何在opencv中使用色度键进行背景去除

标签 opencv chromakey

我需要开发一种算法来从前景图像中删除背景。我想使用色度键控。这将在实时摄像机流上完成,而我需要使用C++中的OpenCV来完成。

我认为算法是这样的:

  • 从网络摄像头捕获帧到矩阵
  • 计算3d rgb空间图
  • 某个值附近的点,例如(10,255,10)为绿色背景。
  • 将绿色区域周围的所有点转换为0。
  • 其余为1.
  • 乘以原始图像(卷积)
  • 应该摆脱背景。

  • 我想要一些从前景图像中删除纯色背景而不删除前景图像中的颜色的方法的帮助。
    是否有一种特殊的裁切功能来删除背景?

    最佳答案

    我正在使用Python的OpenCV。假设您遵循了基础教程,并拥有了相机的框架和背景图像。一行代码应该通过numpy的where函数来解决问题。

    outputImage = np.where(frame == (10,255,10), background, frame)
    

    现在,outputImage包含原始框架(非绿色)和背景图像(绿色)。如您所说,您应该使用一些容忍度。

    关于opencv - 如何在opencv中使用色度键进行背景去除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14938969/

    相关文章:

    c# - Opencv Surf和FlannIndex在图像数据库中查找图像

    opencv - 如何在android studio 1.5.1中导入openCV 3.1

    javascript - 如何在WebGL中本质上 "Chroma Key"?

    python - 为什么我无法从图像中去除西红柿的红色?

    python - 执行透视变形时,如何避免图像的一部分被切割?

    Python/OpenCV - 如何按字母顺序从文件夹中加载所有图像

    qt5 - 在qt5 webview中设置特定颜色透明

    ios - iOS后处理-将时间戳叠加到视频并导出

    c++ - 将 std::string 转换回使用 std::stringstream << cv::Mat 生成的 cv::Mat

    c# .NET 绿屏背景移除