在Visual Studio配置Dlib库+demo代码检测出人脸,安装成功

一、在Visual Studio配置Dlib库步骤

1.首先下载好dlib和cmake

下载Dlib安装包链接:Index of /files

可根据需要选择下载的版本,这里的例子是dlib-19.24版本的

安装cmake:Download CMake

安装好了cmake直接点击cmake-gui.exe打开

2.编译dlib源码

在dlib目录下新建一个build文件夹,在build文件夹下,分别新建一个x64和x86文件夹,用于保存64位和32位的编译文件,根据自己需要创建,我这里用的是64位,所以只创建了x64文件夹,如下:

    

对刚刚打开的cmake进行配置:

(1).在红色框内填写自己的真实路径(此处忽略掉Name和Value的内容,这个是我已经编译过的结果,实际上在完成编译之前应该是空的.)

(2).点击Configure

点击“Configure” 后,选择对应的编译器版本和“Use default native compilers”,编译器有64位和32位,注意选择,然后点击“finish”。

编译完后下面有报错,并且文件夹内并没有生成dlib.sln.

(3).点击“Generate” 按钮,继续生成,会发现一片红没有了,文件夹内也出现想要的“dlib.sln”文件

(4).生成lib链接库 

找到“dlib.sln”文件,使用vs打开,点击生成,选择“重新生成解决方案”或者“生成dlib”,64位、32位、debug、release分别生成一个,我这里使用的前者。

3.配置Dlib 

打开Visual Studio,新建一个C++项目,右键点击项目名称选择属性,配置VC++目录下的包含目录和库目录,以及链接器下的输入下的附加依赖项:

注意在配置时,选择自己对应的Debug和Release模式,比如说我这里使用的是x64的Debug。

若没有进行上述的dlib配置,在C++使用dlib库时就会报错:

因此,配置dlib是非常重要的一步.

4.如果运行报错

将build下的config.h文件复制到dlib源码里面去,替换掉源码中的config.h文件,可以解决报错,再次运行就成功了。

二、代码演示检测结果

1.演示检测人脸的demo代码:

#include <opencv2/opencv.hpp>
#include <fstream>
#include <filesystem>
#include <dlib/opencv.h>
#include <dlib/image_processing.h>
#include <dlib/image_processing/frontal_face_detector.h>

using namespace dlib;
using namespace cv;
using namespace std;

int main()
{
	// 创建人脸检测器
	dlib::frontal_face_detector detector = dlib::get_frontal_face_detector();

	string file_path = "./image/face_data/1.jpg";
	cv::Mat image = cv::imread(file_path);

	if (image.empty())
	{
		printf("图像读取失败\n");
		return -1;
	}
	printf("图像读取成功!\n");
	//显示输入图片
	namedWindow("input_image", WINDOW_FREERATIO);
	imshow("input_image", image);

	//处理图像
	/*FaceRecog qd;
	qd.face(image);*/

	// 转换图像格式为dlib可用的类型
	dlib::cv_image<dlib::bgr_pixel> dlibImage(image);

	// 在图像中检测人脸
	std::vector<dlib::rectangle> faces = detector(dlibImage);
	
	// 在图像上标记检测到的人脸
	for (const auto& face : faces)
	{
		cv::rectangle(image, cv::Point(face.left(), face.top()), cv::Point(face.right(), face.bottom()), cv::Scalar(0, 255, 0), 2);
	}

	// 显示带有人脸标记的图像
	cv::namedWindow("Detected Faces", WINDOW_FREERATIO);
	cv::imshow("Detected Faces", image);
	cout << "检测到的人脸数 :" << faces.size() << endl;

	cv::waitKey(0);
	system("pause"); // 暂停程序执行,等待用户按下任意键继续
	return 0;
}




2.演示结果:

注:绿色矩形框出来的表示检测出来的人脸。

参考文章:《Visual Studio配置Dlib库教程》_dlib vs 配置-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值