add Bag of SIFT calculation

use OpenCV python but it seems there is a problem with writing a very
large file in python opencv
code clean up