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

来源:互联网 发布:linux 重启命令卡住 编辑:程序博客网 时间:2024/05/22 16:05

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

2 0
原创粉丝点击