OpenCV has the copyTo function, which enables copying a masked area from one Mat to another.
http://docs.opencv.org/3.1.0/d3/d63/classcv_1_1Mat.html#a4331fa88593a9a
Note sure if this is exactly what you want, but for copying with masks in Python, I would go with cv2.bitwise_
cv2.bitwise_
new_image = cv2.bitwise_and(old_image,binary_mask)