OpenCV加载/保存直方图数据

OpenCV load/save histogram data

本文关键字:直方图 数据 保存 加载 OpenCV      更新时间:2023-10-16

有没有办法将OpenCv图像直方图存储到磁盘,以便可以直接加载它,而无需被迫再次加载图像并从中计算直方图?

谢谢。

假设您正在处理单通道(灰度)图像,直方图可以用单通道行矩阵表示,该矩阵的长度等于直方图中的箱数。然后,您可以轻松地从/向文本文件加载/保存直方图。如果你想使用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();