分离的背景图像

时间:2018-09-11 20:31:03

标签: python opencv image-processing background-subtraction

我试图将人的手的图像与背景分开。我首先捕获了在我的情况下将是静态的背景,然后用手将其捕获。然后,我使用cv2.absdiff()减去了两个图像,但结果却不符合预期。请帮助我解决这个问题。输出如下:

Original_Image

Background_Image

Output

代码:

while(cap.isOpened()):

    grabbed, frame = cap.read()

    if not grabbed:
        continue

    Original_Image = frame.copy()
    Original_Image = cv2.cvtColor(contourFrame,cv2.COLOR_BGR2GRAY)

    Output_Image = cv2.absdiff(Background_Image, Original_Image)

1 个答案:

答案 0 :(得分:0)

如果仅从前景图像中减去背景图像,则无法分离前景对象,因为要通过减去它们隐藏的背景来更改它们(这将导致图像中出现两条难看的黑线) 。可能的解决方案:仅在两个图像相同的区域(或具有任意容差以考虑轻微变化的照明条件)中从前景中减去背景。对于图像,您很可能必须为背景像素和前景像素之间的差异添加特定的公差(可能为15到25?),因为手会阻挡入射光,因此背景图像比前景图像要轻一些。