4

有什么方法可以将 OpenCv 图像直方图存储到磁盘上,这样就可以直接加载它,而无需再次加载图像并从中计算直方图?

谢谢你。

4

1 回答 1

11

假设您正在处理单通道(灰度)图像,直方图可以由单通道行矩阵表示,其长度等于直方图中的 bin 数量。然后,您可以轻松地从文本文件加载/保存直方图。如果你想使用 c++ opencv api,还提供了文件存储结构。读这个

这是一个简单的例子:

// save file
cv::Mat my_histogram;
cv::FileStorage fs("my_histogram_file.yml", cv::FileStorage::WRITE);
if (!fs.isOpened()) {std::cout << "unable to open file storage!" << std::endl; return;}
fs << "my_histogram" << my_histogram;
fs.release();

// load file
cv::Mat my_histogram;
cv::FileStorage fs("my_histogram_file.yml", cv::FileStorage::READ);
if (!fs.isOpened()) {std::cout << "unable to open file storage!" << std::endl; return;}
fs >> "my_histogram" >> my_histogram;
fs.release();
于 2012-04-23T09:46:06.593 回答