目标检测程序开发(四)——目标检测

遇到了一个不错的《OpenCV入门教程》http://www.opencv.org.cn/forum.php?mod=viewthread&tid=33549

包含矩阵类的操作,以及其内存管理的介绍

以及读写图像和视频的操作。

一个例子

#include<iostream>
#include"opencv2/opencv.hpp"

using namespace std;
using namespace cv;
int main(){

	CascadeClassifier classifier;//分类器
	classifier.load("E:\\training\\RESULT\\cascade.xml");//加载分类器

	Mat img = imread("E:\\training\\RESULT\\1.jpg",0);//待检测的图像,0表示转换为灰度图

	vector<Rect> faces;//保存识别到的目标的矩形
	//最后两个参数是扫描窗口的最小大小和最大大小
	classifier.detectMultiScale(img, faces, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(20, 20));
	if (faces.empty()){
		imshow("test", img);

		waitKey(0);
		return 0;
	}
	else{
		//标出识别到的物体
		//计算圆心
		Point center(faces[0].x + faces[0].width / 2, faces[0].y + faces[0].height / 2);
		//画出椭圆
		ellipse(img, center, Size(faces[0].width, faces[0].height),
			10, 0, 360, Scalar(255, 0, 0), 1, 1);
		//显示图片
		imshow("test", img);

		waitKey(0);
		return 0;
	}

}

detectMultiScale这个方法好慢,,,扫描一遍我用50X50的仅仅扫描1遍都得1s时间,根本达不到应用的要求,应该考虑问题的实际情况,自己重写这个检测的方法,比如更准确的限制扫描窗口的大小,缩小扫描的范围,做并行扫描等等优化措施。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-09 18:03:49

目标检测程序开发(四)——目标检测的相关文章

目标检测程序开发(二)——Boosting算法简介

本文主要参考了OpenCV的官方文档 http://docs.opencv.org/modules/ml/doc/boosting.html boosting算法是一个监督式机器学习算法,它解决的是一个二元分类问题.本文包括对算法思想的理解,不包含算法的数学推导. 目标检测就是用这个分类算法,把只含有目标的图片作为一类,不含有目标的作为另一类,然后训练分类器,进行检测的时候,输入一张图片,用一个窗口扫描这个图片,对每个窗口应用分类器,返回是目标的类别时,就检测到了目标. 监督式机器学习目标是找到

目标检测程序开发(三)——级联分类器训练

目标检测分为3个阶段 1.      样本创建 2.      训练分类器 3.      使用训练好的分类器进行目标检测 级联分类器 源地址http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/objdetect/doc/cascade_classification.html 基于Haar特征的用于目标检测的级联分类器 下面描述的目标检测器最初由PaulViola提出,由RainerLienhart改进, 论文分别是Paul Viola a

目标检测程序开发(一)——OpenCV2.4.11环境配置

本文使用的环境 操作系统:windows_8.1_x64(本文对x86同样适用) 集成开发环境:visual_studio_ultimate_2013 OpenCV版本:opencv-2.4.11 第一步,下载并安装OpenCV 在OpenCV官网下载http://opencv.org/downloads.html ,我选择了版本VERSION 2.4.11,选择这个版本的windows平台版本,单击OpenCVfor Windows下载. 下载完成后,双击opencv-2.4.11.exe进行

记账本微信小程序开发四

学习添加组件 集成日期组件 添加组件 需要在main.js文件中,声明一个data值date与wxml中的{{date}}绑定关联,然后在onLoad中初始化字符串格式的日期值, 处理日期组件点击确认事件bindDateChange 回到main.js文件 声明一个bindDateChange方法,添加如下代码以写回data中的date值 结果: 原文地址:https://www.cnblogs.com/zhoulonghai/p/10415426.html

语义分割(semantic segmentation) 常用神经网络介绍对比-FCN SegNet U-net DeconvNet,语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类;目标检测只有两类,目标和非目标,就是在一张图片中找到并用box标注出所有的目标.

from:https://blog.csdn.net/u012931582/article/details/70314859 2017年04月21日 14:54:10 阅读数:4369 前言 在这里,先介绍几个概念,也是图像处理当中的最常见任务. 语义分割(semantic segmentation) 目标检测(object detection) 目标识别(object recognition) 实例分割(instance segmentation) 语义分割 首先需要了解一下什么是语义分割(s

C++开发人脸性别识别教程(11)——图片人脸检测程序BUG处理

在这篇博客需要解决之前遗留的两个BUG,一是用户在不初始化条件下运行程序,二是人脸检测的误差结果. 一.添加初始化警告 目前我们在“初始化”按钮对应的响应函数中封装了人脸分类器加载.开辟内存等操作: 因此,如果用户在未单击“初始化”按钮的情况下进行图片读入,人脸检测,程序就会因为缺少人脸检测器而崩溃,因此我们向CGenderRecognitionMFCDlg类中添加一个布尔类型的标志位用于指示当前用户是否完成了初始化操作: 并在CGenderRecognitionMFCDlg类的构造函数中将其初

基于opencv和QT的瞳孔精确检测程序

本文为作者为毕业设计所写的瞳孔精确检测程序,谢绝任何形式的转载. 本篇博客是在作者的前两篇博客 <基于QT和opencv的摄像头(本地图片)读取并输出程序>和< 基于opencv和QT的人脸(人眼)检测程序>的基础上进行开发的.主要原理是:针对已经检测到的人眼区域图像,利用边缘检测和Hough变换实现瞳孔的精确检测. 首先建立一个图像处理类,对每一帧图像进行处理. class ImgProcess { private: Mat inimg;//输入图像 Mat outimg;//输

微信开通程序 破解版微信检测助手

如今新入微商行业的大军很多,同样的一个产品做得人越来越多!那么问题来了,客源哪里来,你有好东西,卖给谁?你天天发广告,谁看?很多人只知道在自己朋友圈简单发布一些产品广告,如果光靠你目前那点质量低下的朋友圈.你就是刷爆了也没有成交量的,只会让你的朋友慢慢的把你拉黑,现在大部分人每天都在辛苦的上传产品讯息,首先要知道,朋友圈内的人绝大部分都是自己朋友.亲戚,所以精准客户相对来说寥寥无几. 微信开通程序 破解版微信检测助手 今天小编就交给大家一些比较实用的方法及教你使用微商加好友的便捷工具. 先说说绝

以一个闰年检测程序为例的非法字符异常输入检测

闰年:闰年(Leap Year)是为了弥补认为历法规定造成的年度天数与地球实际公转周期的时间差而设立的.补上时间差的年份为闰年. 简单来说,置润法则是:四年一闰,百年不闰,四百年再闰.即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年. 例如:1950-2050年间的闰年: 1952,1956,1960,1964,1968,1972,1976,1980,1984,1988,1992,1996,2000, 2004,2008,2012,2016,2020,2024,2