what does bwareaopen do?
Remove unwanted small and connected regions in the image
matlab - How does "bwareaopen" work? - Stack Overflow
count - Matlab Bwareaopen equivalent function in OpenCV - Stack Overflow
Take a look at the cvBlobsLib, it has functions to do what you want. In fact, the code example on the front page of that link does exactly what you want, I think.
Essentially, you can use CBlobResult to perform connected-component labeling on your binary image, and then call Filter to exclude blobs according to your criteria.
There is not such a function, but you can 1) find contours 2) Find contours area 3) filter all external contours with area less then threshhold 4) Create new black image 5) Draw left contours on it 6) Mask it with a original image
Numpy/Scipy can do morphological operations just as well as Matlab can.
See scipy.ndimage.morphology, containing, among other things, binary_opening(), the equivalent of Matlab's bwareaopen().
Numpy/Scipy solution: scipy.ndimage.morphology.binary_opening. More powerful solution: use scikits-image.
from skimage import morphology
cleaned = morphology.remove_small_objects(YOUR_IMAGE, min_size=64, connectivity=2)
See http://scikit-image.org/docs/0.9.x/api/skimage.morphology.html#remove-small-objects