码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-24 10:42:37      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:目标检测

遇到了一个不错的《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时间,根本达不到应用的要求,应该考虑问题的实际情况,自己重写这个检测的方法,比如更准确的限制扫描窗口的大小,缩小扫描的范围,做并行扫描等等优化措施。

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

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

标签:目标检测

原文地址:http://blog.csdn.net/giantpoplar/article/details/47030847

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!