首页 文章

如何在opencv中使用色度键控来开发背景去除

提问于
浏览
1

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

我认为的算法是这样的:

  • 从网络摄像头捕获帧到矩阵

  • 计算3d rgb空间图

  • 某个值附近的点,例如(10,255,10)为绿色背景 .

  • 将绿色区域周围的所有点转换为0 .

  • 其余为1 .

  • 与原始图像相乘(卷积)

  • 应该摆脱背景 .

我想帮助一种方法从前景图像中删除纯色背景,而不删除前景图像中的颜色 .
有没有像特殊类型的裁剪功能去除背景?

2 回答

  • 0

    我'm using OpenCV from Python. Suppose you followed a basic tutorial and have the frame from the camera and have a background image. A single line of code should do the trick with the numpy' s where功能 .

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

    现在,outputImage包含原始帧,它不是绿色,而背景图像是绿色 . 如你所说,你应该使用一些容忍度 .

  • 0

    我在C中使用OpenCV,但我不完全明白你想要什么,@ Seif(抱歉我的英语不好) . 你想用前景的颜色替换背景中的绿色吗?你被困在“与原始图像相乘(卷积)”?你的算法是非常真实的,但是你必须把绿色放到角度,圆圈......并实现它们,有很多算法要做(我这样做),否则,我认为除了改变任何绿色之外它是不可能的像素到前景的相似像素 .

相关问题