У меня есть нестандартная структура:
struct custom_roi{
Mat roi;
int x;
int y;
};
Я пытаюсь сохранить эту структуру в двоичный файл на C ++. Я использую следующий код:
ofstream wf;
wf.open("roi.dat", ios::out | ios::binary);
if (!wf) {
cout << "Cannot open file!" << endl;
return 1;
}
string image_path = "D:/images/pic1.jpg";
Mat LoadedImage;
LoadedImage = imread(image_path, IMREAD_COLOR);
FileStorage fs;
custom_roi wsf;
Rect Rec(100, 100, 400, 400);
Mat roi = LoadedImage(Rec);
wsf.x = 100;
wsf.y = 100;
roi.copyTo(wsf.roi);
wf.write((char*)&wsf, sizeof(custom_roi));
wf.close();
Быстрый просмотр переменной custom_roi
Когда я пытаюсь прочитать файл обратно, значения размеров x, y и roi верны, но появляется сообщение « Ошибка чтения символов строки ». Что я делаю не так? Мы будем очень благодарны за вашу помощь. Спасибо.