Следующая программа отображает «передний план» полностью черный, а не «кадр». Я также проверил, что все значения в 'frame' равны значениям в 'переднем плане'. Они имеют те же каналы, тип данных и т.д. Я использую Python 2.7.6 и OpenCV версии 2.4.8Вычитание фона из изображения с использованием Opencv в Python
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()