Creating a mask from a disparity map
For the purposes of Cameo, we are interested in disparity maps and valid depth masks. They can help us refine our estimates of facial regions.
Using the FaceTracker
function and a normal color image, we can obtain rectangular estimates of facial regions. By analyzing such a rectangular region in the corresponding disparity map, we can tell that some pixels within the rectangle are outliers—too near or too far to really be a part of the face. We can refine the facial region to exclude these outliers. However, we should only apply this test where the data is valid, as indicated by the valid depth mask.
Let's write a function to generate a mask whose values are 0
for the rejected regions of the facial rectangle and 1
for the accepted regions. This function should take a disparity map, valid depth mask, and a rectangle as arguments. We can implement it in depth.py
as follows:
def createMedianMask(disparityMap, validDepthMask, rect = None): ...