当前位置: 首页 > news >正文

OpenCV级联分类器

概念

        OpenCV 级联分类器是一种基于 Haar 特征、AdaBoost 算法和级联结构的目标检测方法,通过多阶段筛选快速排除非目标区域,实现高效实时检测(如人脸、行人等)。

加载级联分类器

    // 加载级联分类器CascadeClassifier cascade;// 加载级联分类器文件cascade.load("xml/cars.xml");

关键代码

void detec_car(Mat &frame,CascadeClassifier cascade,double scale)
{// 灰度处理Mat gray_frame;cvtColor(frame,gray_frame,CV_BGR2GRAY);// 压缩灰度图到原来一半Mat smalling(cvRound(frame.rows/scale),cvRound(frame.cols/scale),CV_8UC1);resize(gray_frame,smalling,smalling.size(),0,0,INTER_LINEAR);// 直方图均值化:利用直方图均衡函数让图像呈现出黑白分明,凸显出主要检测的目标equalizeHist(smalling,smalling);// 使用级联分类器模型识别车辆vector<Rect> cars;cascade.detectMultiScale(smalling,cars,1.1,2,0|CV_HAAR_SCALE_IMAGE,Size(30,30));// 绘制矩形框vector<Rect>::const_iterator itr;for(itr=cars.begin();itr!=cars.end();itr++){rectangle(frame,cvPoint(cvRound(itr->x*scale),cvRound(itr->y*scale)),cvPoint(cvRound((itr->x+itr->width)*scale),cvRound((itr->y+itr->height)*scale)),Scalar(0,255,0),2,3);}imshow("res",frame);
}

操作步骤(训练过程)

1、正样本数据采集(需要检测的物体图片)

2、负样本数据采集(非检测物的图片)

3、调用opencv程序opencv_createsamples.exe程序实现样本数据采集。

4、调用opencv程序opencv_traincascade.exe样本训练程序进行训练

5、生成级联分类器文件

相关文章:

  • webpack 学习
  • Git 项目切换到新的远程仓库地址
  • NVMe简介6之PCIe事务层
  • 框架之下再看HTTP请求对接后端method
  • PLC和变频器之间如何接线
  • Java 快速转 C# 教程
  • 科技晚报 AI 速递:今日科技热点一览 丨 2025 年 5 月 17 日
  • 网关GateWay——连接不同网络的关键设备
  • 【蓝桥杯省赛真题51】python石头运输 第十五届蓝桥杯青少组Python编程省赛真题解析
  • 基于 jQuery 的轻量级在线画册、电子书、产品目录插件及使用
  • 【Closure-Hayd】
  • Oracle 11.2.0.4 pre PSU Oct18 设置SSL连接
  • mac-M系列芯片安装软件报错:***已损坏,无法打开。推出磁盘问题
  • java中的循环结构
  • QMK 宏(Macros)功能详解(实战部分)
  • STM32烧录程序正常,但是运行异常
  • DeepSeek 赋能军事:重塑现代战争形态的科技密码
  • AgentCPM-GUI,清华联合面壁智能开源的端侧GUI智能体模型
  • 第三十四节:特征检测与描述-SIFT/SURF 特征 (专利算法)
  • 【赵渝强老师】在PostgreSQL中访问Oracle
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突
  • 泽连斯基:俄代表团级别低,没人能做决定
  • 俄媒:俄乌代表团抵达谈判会场
  • 年在沪纳税350亿人民币,这些全球头部企业表示“对上海承诺不会变”
  • 株洲一重病妇女被要求本人到银行取款时去世?当地警方:正在处理
  • 复原展出孙吴大墓,江苏首座考古博物馆将开放