opencv编程指南

人脸提取部分

  • interface的工程介绍
    参见传送门

  • dll文件缺失
    很早之前,在vs2010上写好的interface人脸提取系统,在vs2012上链接失败了,找了很多方法,最后还是需要下载不同的dll【是系统中的dll文件】。注意:如果你是64位系统,就将dll放到sysWOW64下;如果是32位系统,就放到system32下。下载网站选用太平洋下载中心传送门,直接下载好dll,放入到对应文件夹下就可以。

  • opencv版本基础知识
    所有官方文档的位置传送门

    值得注意的是,opencv2.版本支持x86和x64的两种环境,opev3.只支持x64的
    一般link不对,是缺少lib,查看编译器里面的lib是否存在
    一般运行不对,是缺少动态链接库,查看动态链接库是否放入Debug或者Release文件夹

    加载CascadeClassifier时,需要增加头文件,否则加载不进去。可以初步实现人脸的识别。但是第二帧开始容易出错。

#include <opencv2/objdetect/objdetect.hpp>

具体opencv的配置工作,参考之前的博客,实际内容和interface工程有重叠的部分
opencv配置

  • interface问题

interface由于动态链接库是基于opencv2.4.6生成的,由于没有提供源码,因此不能重新生成动态链接库,所以opencv的版本不能变。为了能让opencv可以在vs2012下运行,下载opencv2.4.6,选择build/x86/vc11下的文件,vc11对应vs2012,vc10对应vs2010,amazing。
但是经过尝试,发现依旧不能编译,看来这个软件只能支持vs2010+opencv2.4.6版本下,才可以正常使用。
include文件,也是选择build文件夹下的include文件

  • 加载视频
    对于视频加载,需要增加ffmpeg的dll文件

分类器训练部分

cv:Mat使用教程

官网传送门

Mat::push_back #输入也要是mat类型

Mat M(2,2,CV_8UC3, Scalar(0,0,255)); #初始化

M.row(3) = M.row(3) + M.row(5)*3 #对行操作

// now copy the 7-th column to the 1-st column

// M.col(1) = M.col(7); // this will not work

Mat M1 = M.col(1);

M.col(7).copyTo(M1);

// C++ code:

double m[3][3] = {{a, b, c}, {d, e, f}, {g, h, i}};

Mat M = Mat(3, 3, CV_64F, m).inv();

C++使用技巧

atoi(str.c_str()) # string to int
atof(str.c_str()) # string to double
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值