您的位置:首页 > 新闻 > 资讯 > 南宁手机网站建设公司_公司企业文化模板_项目推广平台排行榜_百度风云榜游戏排行榜

南宁手机网站建设公司_公司企业文化模板_项目推广平台排行榜_百度风云榜游戏排行榜

2025/1/6 17:56:30 来源:https://blog.csdn.net/weixin_45672157/article/details/144918947  浏览:    关键词:南宁手机网站建设公司_公司企业文化模板_项目推广平台排行榜_百度风云榜游戏排行榜
南宁手机网站建设公司_公司企业文化模板_项目推广平台排行榜_百度风云榜游戏排行榜

文章目录

  • HOGDescriptor 构造函数
  • setSVMDetector 设置支持向量机(SVM)检测器,用于目标检测。
  • compute 用于计算图像区域的HOG描述符。
  • detectMultiScale 多尺度检测目标。
  • 示例

HOGDescriptor 构造函数

HOGDescriptor();
HOGDescriptor(const Size& _winSize, const Size& _blockSize, const Size& _blockStride, const Size& _cellSize, int _nbins, double _alpha, double _L2HysThreshold,bool _gammaCorrection, NHistType _histogramNormType);_winSize: 指定窗口大小,默认是 64x128 像素。_blockSize: 指定块的大小,默认是 16x16 像素。一个块由多个单元格(cell)组成。_blockStride: 指定在计算下一个块时块之间滑动的步长,默认是 8x8 像素。_cellSize: 指定每个单元格的大小,默认是 8x8 像素。每个单元格内的像素点将被用来计算梯度直方图。_nbins: 指定每个单元格中梯度方向的数量,默认是 9 个bin。_alpha: 权重缩放因子,通常设置为 1.0。_L2HysThreshold: L2 范数阈值,用于防止光照变化影响。默认值通常是 0.2。_gammaCorrection: 是否应用伽马校正预处理。默认是 false。_histogramNormType: 直方图归一化类型。

setSVMDetector 设置支持向量机(SVM)检测器,用于目标检测。

void setSVMDetector(vector<float> detector)
detector: SVM权重向量,可以通过训练获得或使用OpenCV提供的默认检测器。

compute 用于计算图像区域的HOG描述符。

void compute(InputArray img, vector<float>& descriptors, const Size winStride=Size(), const vector<Point>& locations=vector<Point>()); img: 输入图像,应该为灰度图像。descriptors: 输出的HOG描述符。winStride: 窗口滑动步长。locations: 指定需要计算的特定位置。

detectMultiScale 多尺度检测目标。

void detectMultiScale(Mat image, vector<Rect>& foundLocations, double hitThreshold=0, Size winStride=Size(),Size padding=Size(), double scale=1.05, int finalThreshold=2,bool useMeanshiftGrouping=false)image: 输入图像。foundLocations: 输出矩形框列表,表示检测到的目标位置。hitThreshold: 决定检测是否成功的阈值。winStride: 滑动窗口的步长。padding: 检测窗口的填充大小。scale: 图像金字塔的比例因子。finalThreshold: 需要的邻居数量。useMeanshiftGrouping: 是否使用均值漂移分组来合并候选矩形框。

示例

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, char** argv) {// 读取图像文件 "D:/vcprojects/images/HOGV.png" 到 Mat 对象 src 中Mat src = imread("D:/vcprojects/images/HOGV.png");// 如果图像加载失败,则输出错误信息并返回 -1 终止程序if (src.empty()) {printf("could not load image...\n");return -1;}// 创建一个名为 "input image" 的窗口,大小根据图像自动调整namedWindow("input image", CV_WINDOW_AUTOSIZE);// 在 "input image" 窗口中显示图像 srcimshow("input image", src);// 初始化 HOGDescriptor,默认设置用于检测人的SVM检测器HOGDescriptor hog = HOGDescriptor();hog.setSVMDetector(hog.getDefaultPeopleDetector());// 定义一个向量 foundLocations 来存储检测到的人体矩形框的位置vector<Rect> foundLocations;// 使用 detectMultiScale 函数在图像 src 中查找人体// 参数解释:输入图像、输出矩形框列表、检测阈值、窗口滑动步长、最小窗口尺寸、搜索窗口每次迭代的增长率、需要的邻居数量hog.detectMultiScale(src, foundLocations, 0, Size(8, 8), Size(32, 32), 1.05, 2);// 复制源图像到结果图像 result 中,以便可以在上面绘制检测到的对象Mat result = src.clone();// 遍历所有检测到的矩形框,在结果图像上绘制红色边框for (size_t t = 0; t < foundLocations.size(); t++) {rectangle(result, foundLocations[t], Scalar(0, 0, 255), 2, 8, 0);}// 创建一个名为 "HOG SVM Detector Demo" 的窗口来显示检测结果namedWindow("HOG SVM Detector Demo", CV_WINDOW_AUTOSIZE);// 在 "HOG SVM Detector Demo" 窗口中显示带有矩形框的结果图像imshow("HOG SVM Detector Demo", result);// 等待用户按键事件,参数为0表示无限期等待waitKey(0);// 正常退出程序return 0;
}

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com