The following program displays 'foreground' completely black and not 'frame'. I also checked that all the values in 'frame' is equal to the values in 'foreground'. They have same channels,data type etc. I am using python 2.7.6 and OpenCV version 2.4.8
import cv2
import numpy as np
def subtractBackground(frame,background):
foreground = np.absolute(frame - background)
foreground = foreground >= 0
foreground = foreground.astype(int)
foreground = foreground * frame
cv2.imshow("foreground",foreground)
return foreground
def main():
cap = cv2.VideoCapture(0)
dump,background = cap.read()
while cap.isOpened():
dump,frame = cap.read()
frameCopy = subtractBackground(frame,background)
cv2.imshow('Live',frame)
k = cv2.waitKey(10)
if k == 32:
break
if __name__ == '__main__':
main()