#pragma once
#include <vector>
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
class WinBox
{
public:
WinBox();
vector<Mat> computeHist(Mat& win, Size box);
Mat confidence(Mat& img, Size box, vector<Mat>& winHist, int scale = 1, int stride = 1);
private:
int histSize[2]; //bin数量,声明成数组形式
float hranges[2]; //直方图的最小值与最大值
float sranges[2]; //直方图的最小值与最大值
const float* ranges[2]; //hranges的地址值要赋给ranges[0]
int channels[2]; //通道
};
#include "WinBox.h"
WinBox::WinBox()
{
histSize[0] = 30; histSize[1] = 40;
hranges[0] = 0; hranges[1] = 180;
sranges[0] = 0; sranges[1] = 255;
ranges[0] = hranges; ranges[1] = sranges;
channels[0] = 0; channels[1] = 1;
}
//计算给定窗口win的分块直方图,并保存到winHist中
vector<Mat> WinBox::computeHist(Mat& win, Size box)
{
vecto