void writeMat(cv::Mat_<T>& mat, char* file){ ofstream* ofile = new ofstream(file,ofstream::out|ofstream::binary); (*ofile)<<mat.rows<<" "; (*ofile)<<mat.cols<<" "; (*ofile)<<mat.type()<<" "; (*ofile)<<mat.total()*mat.elemSize(); ofile->write((char*) mat.data,mat.total()*mat.elemSize()); ofile->close(); }
void serialize(Archive & ar, ::cv::Mat_<T>& m, const unsigned int version) { if(Archive::is_loading::value == true) { int cols, rows; size_t elem_size, elem_type; ar & cols; ar & rows; ar & elem_size; ar & elem_type; m.create(rows, cols); size_t data_size = m.cols * m.rows * elem_size; ar & boost::serialization::make_array(m.ptr(), data_size); } else { size_t elem_size = m.elemSize(); size_t elem_type = m.type(); ar & m.cols; ar & m.rows; ar & elem_size; ar & elem_type; const size_t data_size = m.cols * m.rows * elem_size; ar & boost::serialization::make_array(m.ptr(), data_size); } }