我正在使用OpenCV库,它有一个名为Mat
的类,表示一个矩阵,数据存储在uchar* Mat::data
的数组中。我想用C ++将这些数据写入二进制文件。
这是我的代码:
cv::Mat m(3, 3, CV_8UC1); // This basically creates a 3-by-3 matrix
std::fstream fileOut("file.bin", std::ios::out | std::ios::binary);
fileOut.write((char*)m.data, 9); // This should write 9 bytes of data
我收到错误消息:
invalid conversion from ‘uchar* {aka unsigned char*}’ to ‘std::basic_istream<char>::char_type* {aka char*}’
我应该采取哪些不同的方式?
答案 0 :(得分:0)
这是C ++中的非法转换
使用reinterpret_cast<const char*>(m.data)