c++已知模板图计算得到标准图的HOG特征,并对其可视化的代码。
时间: 2024-05-06 17:18:51 浏览: 83
以下是一个简单的示例代码,展示了如何使用OpenCV库中的HOGDescriptor类来计算图像的HOG特征并将其可视化。
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读入模板图和标准图
Mat template_img = imread("template.jpg");
Mat standard_img = imread("standard.jpg");
// 创建HOG描述符对象
HOGDescriptor hog(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9);
// 计算模板图的HOG特征
std::vector<float> template_hog;
hog.compute(template_img, template_hog);
// 计算标准图的HOG特征
std::vector<float> standard_hog;
hog.compute(standard_img, standard_hog);
// 将HOG特征可视化
Mat template_hog_vis, standard_hog_vis;
hog.visualize(template_hog, template_hog_vis);
hog.visualize(standard_hog, standard_hog_vis);
// 显示HOG特征图像
imshow("Template HOG", template_hog_vis);
imshow("Standard HOG", standard_hog_vis);
waitKey(0);
return 0;
}
```
其中,HOGDescriptor类的构造函数需要传入以下参数:
- winSize:窗口大小,通常为64x128。
- blockSize:块大小,通常为16x16。
- blockStride:块移动的步长,通常为8x8。
- cellSize:细胞大小,通常为8x8。
- nbins:直方图的bin数,通常为9。
通过调用compute函数,可以计算给定图像的HOG特征,并将结果存储在一个向量中。visualize函数可以将HOG特征可视化为一个图像。最后,使用imshow函数显示可视化后的HOG特征图像。
阅读全文