我确定问题是否已经提出但是没有遇到类似的问题。对不起,如果已经问过这个问题。
我正在尝试从二进制文件中读取OpenCV mat_。我使用此代码成功完成了这项工作。
out = cv::Mat_<float> (1080,1920);
for(int y = 0; y < 1080; ++y)
{
result = fread(out[y], sizeof(float), 1920, file);
if(result != 1920)
throw std::runtime_error("Short/failed fread on binary file");
}
我在网上发现的大多数例子都是使用缓冲区从文件中读取数据,然后用缓冲区值填充Mat,但我设法使用Mat的行指针跳过缓冲区。但在这里,我正在逐行阅读。我想一步到位。我需要知道如何将Mat指针(它所拥有的整个内存)传递给fread。任何更好的选择也是受欢迎的。