EasyX提取图像直方图完整代码
时间: 2024-10-16 09:16:38 浏览: 69
EasyX是一个基于Windows API的简单易用的图形库,它并不直接提供图像直方图的提取功能。如果你想获取图像的直方图,通常需要使用专门处理图像的库,如OpenCV、PIL(Python Imaging Library)等。
这里给你一个使用OpenCV在C++中提取图像直方图的基本代码示例:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 加载图像
cv::Mat img = cv::imread("example.jpg", cv::IMREAD_COLOR);
if (img.empty()) {
std::cout << "Failed to load image" << std::endl;
return -1;
}
// 提取每个通道的直方图
std::vector<cv::Mat> channels(3);
cv::split(img, channels); // 分离BGR三个通道
for (size_t i = 0; i < channels.size(); ++i) {
std::vector<int> hist(256, 0); // 初始化直方图数组
cv::calcHist(&channels[i], 1, nullptr, hist, {256}, {0, 256}); // 计算直方图
// 输出或可视化直方图
std::cout << "Channel " << (char)('b'+i) << " histogram:" << std::endl;
for (int bin : hist) {
std::cout << bin << ' ';
}
std::cout << std::endl;
}
cv::waitKey();
return 0;
}
```
阅读全文