我将cv :: Mat保存为一个可以正常工作的CSV文件,但是当我加载并将其转换回cv :: Mat时,某些内容已损坏。当我打印出cv :: Mat的内容时,它们与csv文件的内容不同。当我展示Mat对象时,我会看到一个宽阔的白色窗口。C++ Opencv加载CSV文件为cv :: Mat
cv::imwrite("cameraFrame1.jpg", frame);
outFile.open("cameraFrame1.csv");
outFile << cv::format(frame, "CSV") << std::endl;
outFile.close();
...
CvMLData mlData;
mlData.read_csv("cameraFrame1.csv");
const CvMat* tmp = mlData.get_values();
cv::Mat img(tmp, true);
tmp->CvMat::~CvMat();
std::cout << "img: " << img << std::endl;
cv::namedWindow("img");
cv::imshow("img", img);
cv::waitKey(0);
编辑:
我不是在所有连接到这个方法,如果有更好的方法来保存到CSV图像,然后在它读成这样我会很高兴地移动到。这一点是将图像保存为原始数据,最有可能在数据库中,然后可以再次打开matlab,python,C++等。
你为什么不把它保存为带有imwrite()的png文件?这是无损压缩,几乎可以在任何地方读回(Matlab,Python,libpng ...)。它甚至可以存储在数据库中。 – Sameer