Technical FAQ

答:

(1)如果你使用BM-OpenCV创建cv::Mat ,想把它变成bm_image,那么你需要创建一个具备设备内存的Mat,也就是使用含有dev_id的参数的构造函数(也就是创建1个我们改造过的Mat),这样你才能把这个Mat通过toBMI转换为bm_image,并且这个转换过程不会发生数据拷贝,bm_image只会引用Mat的设备内存。

(2)如果你使用data指针构造没有设备内存的原始cv::Mat,这个cv::Mat不能调用toBMI转换为bm_image,如果你确实有一个原始OpenCV的cv::Mat,要转换为bm_image,那么你应当:创建一个有设备内存的Mat,然后使用Mat.copyTo将openCV的cv::Mat的系统内存拷贝到有设备内存的Mat的系统内存空间,然后使用cv::bmcv::uploadMat将有设备内存的Mat的系统内存同步到其设备内存,然后再调用toBMI将其转换为bm_image。