OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
楼主: Shiqi Yu

免费、高性能的人脸检测库

  [复制链接]
发表于 2015-6-26 14:36:51 | 显示全部楼层
老师你好?这个在Android上怎么使用?
回复 支持 反对

使用道具 举报

发表于 2015-7-3 10:23:52 | 显示全部楼层
于老师,你好,我下载后编译出现下面的错误,是什么原因呢? 我的lib文件都加载成功了。 我的系统是win7 64位的。谢谢




1>libfacedetect-example.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) int * __cdecl facedetect_multiview(unsigned char *,int,int,int,float,int,int,int)" (__imp_?facedetect_multiview@@YAPEAHPEAEHHHMHHH@Z),该符号在函数 "int __cdecl faceTest(void)" (?faceTest@@YAHXZ) 中被引用
1>libfacedetect-example.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) int * __cdecl facedetect_frontal(unsigned char *,int,int,int,float,int,int,int)" (__imp_?facedetect_frontal@@YAPEAHPEAEHHHMHHH@Z),该符号在函数 "int __cdecl faceTest(void)" (?faceTest@@YAHXZ) 中被引用
1>E:\Code\OPENCV_Library\OCR_Prj\x64\Debug\OCR_Prj.exe : fatal error LNK1120: 2 个无法解析的外部命令
回复 支持 反对

使用道具 举报

发表于 2015-7-8 13:26:11 | 显示全部楼层
太有用了,感谢于老师
回复 支持 反对

使用道具 举报

发表于 2015-7-13 22:29:23 | 显示全部楼层
谢谢分享学习心得
回复 支持 反对

使用道具 举报

发表于 2015-7-16 13:40:10 | 显示全部楼层
于老师,step是什么意思?行宽吗?
回复 支持 反对

使用道具 举报

发表于 2015-7-16 21:51:36 | 显示全部楼层
于老师,我使用cvLoadImage取图片,之后调用:        pResults                = facedetect_frontal((unsigned char *)imgGray->imageData, img->width, img->height, 1, 1.2f, 2,  24);
返回的结果一直是0,不知是怎么回事?参数有问题吗?
我的step使用的是1,也用过2、8、32,都是这样。
回复 支持 反对

使用道具 举报

发表于 2015-7-24 13:24:00 | 显示全部楼层
于老师,有人脸的特征点提取码吗????
回复 支持 反对

使用道具 举报

发表于 2015-7-27 15:38:47 | 显示全部楼层
于老师,下不了呀。。能邮箱给发一下吗?46941571@qq.com
回复 支持 反对

使用道具 举报

发表于 2015-7-31 16:26:01 | 显示全部楼层
用DLL再封装一下,就能给delphi或者VB等工具调用了
#include <opencv.hpp>
#include "facedetect-dll.h"
#pragma comment(lib,"libfacedetect.lib")
using namespace cv;

extern "C" __declspec(dllexport) int * facedetectfrontal( char *picname,//input image, it must be gray (single-channel) image!
        float scale, //scale factor for scan windows
        int min_neighbors, //how many neighbors each candidate rectangle should have to retain it
        int min_size, //Minimum possible face size. Faces smaller than that are ignored.
        int max_size)
{
        Mat gray = imread(picname, CV_LOAD_IMAGE_GRAYSCALE);
        int * pResults = NULL;
        if(!gray.empty())
                pResults = facedetect_frontal((unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, gray.step,
                        scale,min_neighbors,min_size,max_size);
        //if(!gray.empty())
        //        pResults = facedetect_frontal((unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, gray.step,
        //        1.2f, 2,24,0);
        return pResults;
}

extern "C" __declspec(dllexport) int * facedetectmultiview( char *picname,//input image, it must be gray (single-channel) image!
        float scale, //scale factor for scan windows
        int min_neighbors, //how many neighbors each candidate rectangle should have to retain it
        int min_size, //Minimum possible face size. Faces smaller than that are ignored.
        int max_size)
{
        //return facedetect_multiview(gray_image_data,width,height,step,scale,min_neighbors,min_size,max_size);
        Mat gray = imread(picname, CV_LOAD_IMAGE_GRAYSCALE);
        int * pResults = NULL;
        if(!gray.empty())
                pResults = facedetect_multiview((unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, gray.step,
                scale, min_neighbors,min_size,max_size);
        return pResults;
}

extern "C" __declspec(dllexport) int headcount(char *picname)
{
        Mat gray = imread(picname, CV_LOAD_IMAGE_GRAYSCALE);
        int * pResults = NULL;
        if(!gray.empty())pResults = facedetect_frontal((unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, gray.step,1.2f, 2,24,0);
        int rt=pResults ? *pResults : 0;
        //int rt=*pResults;
        return rt;
}
回复 支持 反对

使用道具 举报

发表于 2015-7-31 16:31:15 | 显示全部楼层
本帖最后由 hustjoyboy 于 2015-7-31 16:37 编辑

假设以上代码编译成libfacePas.dll,则只要加上于老师的libfacedetect.dll,然后加上几个opencv的dll,即可脱离Opencv环境进行调用,以下为delphi的调用代码
function facedetectfrontal(picname: PChar;scale:single;min_neighbors,min_size:integer;max_size:integer=0): PInteger;cdecl;external 'libfacePas.dll' name 'facedetectfrontal';
function facedetectmultiview(picname: PChar;scale:single;min_neighbors,min_size:integer;max_size:integer=0): PInteger;cdecl;external 'libfacePas.dll' name 'facedetectmultiview';
function headcount(picname: PChar):Integer;cdecl;external 'libfacePas.dll' name 'headcount';

procedure TForm1.Button1Click(Sender: TObject);
var
  pi: Pinteger;
  a,b,c,d:integer;
begin
  pi:=facedetectmultiview('test.jpg',1.2, 2, 24);
  a:=pi^;
  showmessage(inttostr(a));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  a:integer;
  ss:TStringlist;
begin
  a:=headcount('test.jpg');
  showmessage(inttostr(a));
  ss.Free;
end;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-26 21:38 , Processed in 0.009386 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表