图像梯度HOG的源代码编写opencvC++
时间: 2023-10-02 07:07:36 浏览: 103
以下是使用OpenCV C++编写图像梯度HOG的源代码:
```
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat src = imread("image.jpg");
resize(src, src, Size(64, 128));
cvtColor(src, src, COLOR_BGR2GRAY);
HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
std::vector<Rect> found;
hog.detectMultiScale(src, found, 0, Size(8, 8), Size(0, 0), 1.05, 2);
for (int i = 0; i < found.size(); i++)
{
rectangle(src, found[i], Scalar(0, 0, 255), 2);
}
imshow("HOG", src);
waitKey(0);
return 0;
}
```
这段代码会读取一张图片,将其缩放为64x128大小并转换为灰度图像。然后,它会初始化一个HOGDescriptor对象,并设置其SVM检测器为默认的行人检测器。接下来,它会使用detectMultiScale方法来检测图像中的行人,并将其放入一个名为found的Rect向量中。最后,它会在原始图像上绘制矩形框,将检测到的行人标出来并显示结果。
阅读全文