我将相机图像捕捉到图像中。我从图像中选择对象,然后跟踪对象。但我想将选择保存到文件中,因为我不希望每次都选择对象。 这是我的选择部分;
Mat image;
Rect selection;
selection.x = MIN(x, origin.x);
selection.y = MIN(y, origin.y);
selection.width = abs(x - origin.x);
selection.height = abs(y - origin.y);
selection &= Rect(0, 0, image.cols, image.rows);
如何保存选择或如何首次选择对象? 谢谢
答案 0 :(得分:1)
您无法使用Rect
直接存储FileStorage
,但可以存储x
,y
,width
和{{的整数值1}}。
写入文件:
height
从文件中读取
Rect rect;
// ... init your Rect
FileStorage fs("rect.yml", FileStorage::WRITE);
if( fs.isOpened() ){
fs << "x" << rect.x << "y" << rect.y;
fs << "width" << rect.width << "height" << rect.height;
fs.release();
}
else cout << "Error: can not save the rect\n";
答案 1 :(得分:-1)
尝试OpenCV file storage自行保存矩形。或者,如果您要保存图片的选定部分,请使用cv::Mat roi constructor,然后使用cv::imwrite进行保存。