// 定义控制台应用程序的入口点。
//
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/ml/ml.hpp"
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
void detectAndDraw(Mat& img, CascadeClassifier& cascade, double scale)
{
double t = 0;
vector<Rect> car;
const static Scalar colors[] = { CV_RGB(0, 0, 255),};
Mat gray, smallImg(cvRound(img.rows / scale), cvRound(img.cols / scale), CV_8UC1);//将图片缩小,加快检测速度
cvtColor(img, gray, CV_BGR2GRAY);//因为用的是类haar特征,所以都是基于灰度图像的,这里要转换成灰度图像
resize(gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR);//将尺寸缩小到1/scale,用线性插值
equalizeHist(smallImg, smallImg);//直方图均衡
t = (double)cvGetTickCount();//用来计算算法执行时间
cascade.detectMultiScale(smallImg,car,
1.1, 2, 0
//|CV_HAAR_FIND_BIGGEST_OBJECT
//|CV_HAAR_DO_ROUGH_SEARCH
| CV_HAAR_SCALE_IMAGE
,
Size(30, 30));
t = (double)cvGetTickCount() - t;//相减为算法执行的时间
printf("detection time = %g ms\n", t / ((double)cvGetTickFrequency()*1000.));
for (vector<Rect>::const_iterator r =car.begin(); r != car.end(); r++)
{
Mat smallImgROI;
vector<Rect> nestedObjects;
Point center;
Scalar color = colors[0];
int radius;
center.x = cvRound((r->x + r->width*0.5)*scale);//还原成原来的大小
center.y = cvRound((r->y + r->height*0.5)*scale);
radius = cvRound((r->width + r->height)*0.25*scale);
circle(img, center, radius, color, 3, 8, 0);
smallImgROI = smallImg(*r);
}
cv::imshow("result", img);
}
int main(int argc, const char** argv)
{
VideoCapture capture("4.flv");
//【2】循环显示每一帧
while (1)
{
Mat frame;//定义一个Mat变量,用于存储每一帧的图像
capture >> frame; //读取当前帧
imshow("读取视频", frame); //显示当前帧
waitKey(1); //延时30ms
CascadeClassifier cascade;//创建级联分类器对象
double scale = 3.0;
if (!cascade.load("model.xml"))//从指定的文件目录中加载级联分类器
{
cerr << "ERROR: Could not load classifier cascade" << endl;
return 0;
}
if (!frame.empty())//读取图片数据不能为空
{
detectAndDraw(frame, cascade, scale);
//waitKey(0);
}
}return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
车辆检测.zip (35个子文件)
车辆检测
ConsoleApplication13.sln 1KB
ConsoleApplication13.sdf 13.25MB
x64
Debug
ConsoleApplication13.ilk 527KB
ConsoleApplication13.pdb 2.14MB
ConsoleApplication13.exe 102KB
ConsoleApplication13.v12.suo 20KB
ConsoleApplication13
1 (7).png 872KB
1 (6).png 595KB
model1.xml 116KB
1 (8).png 1.08MB
1 (5).png 641KB
1 (2).png 919KB
1 (4).png 743KB
ConsoleApplication13.vcxproj 7KB
model.xml 301KB
1.png 732KB
2.png 730KB
x64
Debug
vc120.pdb 796KB
ConsoleApplication13.log 2KB
vc120.idb 603KB
源.obj 357KB
ConsoleA.85F7FFFD.tlog
cl.command.1.tlog 2KB
CL.read.1.tlog 33KB
ConsoleApplication13.lastbuildstate 165B
link.read.1.tlog 5KB
link.write.1.tlog 1KB
CL.write.1.tlog 1KB
link.command.1.tlog 4KB
1 (3).png 815KB
1.BMP 36KB
1 (1).png 1.01MB
4.flv 2.66MB
1 (9).png 999KB
ConsoleApplication13.vcxproj.filters 944B
源.cpp 2KB
共 35 条
- 1
资源评论
- 老李家的小二2017-04-10还可以,我修改成EmguCV版本了,识别的不够准确,有时候识别不出来,是model.xml文件的问题吗
qq_35692282
- 粉丝: 1
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 塑料检测23-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- Python圣诞节倒计时与节日活动管理系统
- 数据结构之哈希查找方法
- 系统DLL文件修复工具
- 塑料、玻璃、金属、纸张、木材检测36-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- Python新年庆典倒计时与节日活动智能管理助手
- Nosql期末复习资料
- 数据结构排序算法:插入排序、希尔排序、冒泡排序及快速排序算法
- 2011-2024年各省数字普惠金融指数数据.zip
- 计算机程序设计员三级(选择题)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功