use smart pointer in opencvlux