soft cascade(opencv dev-3.00 version)

来源:互联网 发布:遇上网络诈骗怎么办 编辑:程序博客网 时间:2024/06/06 03:19

编译了一下还在开发中的opencv  试了下里面有一个2012年cvpr的算法 pedestrian detect  论文《pedestrian detection at 100 frames per second》

废话少说直接上代码


#include <opencv\cv.h>#include <opencv\highgui.h>#include <opencv2\core\core.hpp>#include <opencv2\opencv.hpp>#include <opencv2\softcascade.hpp>  int main( int argc, char** argv ){//load imagecv::Mat img=cv::imread("walkman.jpg");    cv::softcascade::Detector soft;cv::FileStorage fs("soft-cascade-17.12.2012.xml", cv::FileStorage::READ); bool ok = soft.load(fs.getFirstTopLevelNode());if ( ! ok ) {std::cerr << "cascade load error!" << std::endl; return -1;}std::vector<cv::Rect> rois;rois.push_back(cv::Rect(0,0,img.cols,img.rows)); //for now, the whole imgstd::vector<cv::softcascade::Detection> softobj; // results    soft.detect(img,rois,softobj);for ( size_t j=0; j<softobj.size(); ++j ) // lame visualization ..{                 cv::Rect R(softobj[j].x, softobj[j].y, softobj[j].w, softobj[j].h); cv::rectangle(img,R,cv::Scalar(softobj[j].confidence*3-128 ,0,0),2);} cv::namedWindow("image", CV_WINDOW_NORMAL);    cv::imshow("image", img);    cv::waitKey();     return 0;}

最后输出结果可以用groupRectangles筛选一下 

然后结果图看一下  我觉得效果可能跟数据集有关 毕竟只有两个Octave  有时间的话会详细说下这个算法


0 0
原创粉丝点击