soft cascade(opencv dev-3.00 version)

编译了一下还在开发中的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 image
	cv::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 img
	std::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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值