19.24.1版本的dlib可以在3.90的python上运行吗?
时间: 2023-11-14 12:06:38 浏览: 26
是的,dlib 19.24.1 版本可以在 Python 3.9.0 上运行。根据 dlib 的官方文档,该版本支持 Python 3.6 及更高版本。因此,您可以使用以下命令在 Python 3.9.0 上安装 dlib 19.24.1 版本:
```
pip install dlib==19.24.1
```
请注意,您需要先安装C++编译器和Python开发头文件,以便在安装dlib时进行编译。在Ubuntu上,您可以使用以下命令安装所需的依赖项:
```
sudo apt-get install build-essential cmake
sudo apt-get install libopenblas-dev liblapack-dev
sudo apt-get install libx11-dev libgtk-3-dev
sudo apt-get install python3-dev python3-pip python3-venv
```
在其他操作系统上,您需要查看相应的文档以了解如何安装这些依赖项。
相关问题
dlib downsample_gaussian 在19.24中移除了吗
是的,dlib 19.24 版本中移除了 `downsample_gaussian` 函数。如果需要使用高斯金字塔,可以使用 `pyramid_down` 函数代替。以下是一个使用 `pyramid_down` 函数的示例代码:
```c++
#include <dlib/image_processing.h>
#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_processing/render_face_detections.h>
#include <dlib/image_io.h>
#include <iostream>
#include <math.h>
using namespace dlib;
using namespace std;
//Laplacian金字塔的图像去模糊算法
void deblur_image_pyramid(const matrix<rgb_pixel>& img, matrix<rgb_pixel>& out)
{
//设置金字塔的层数
const int levels = 6;
std::vector<matrix<float>> pyramid(levels), laplacian(levels-1), gaussian(levels-1);
//生成高斯金字塔
pyramid[0] = matrix_cast<float>(img);
for (int i = 1; i < levels; ++i)
pyramid[i] = pyramid_down<2>(pyramid[i-1]);
//生成拉普拉斯金字塔
for (int i = 0; i < levels-1; ++i)
laplacian[i] = pyramid[i] - upsample(pyramid[i+1]);
//调整拉普拉斯金字塔的频率
float sigma = 2;
for (int i = 0; i < levels-1; ++i)
{
//计算该层金字塔对应的sigma
float level_sigma = pow(4.0f, i) * sigma;
//调整金字塔的频率
laplacian[i] = pointwise_multiply(laplacian[i], gaussian_filter(laplacian[i], level_sigma));
}
//重建图像
for (int i = levels-2; i >= 0; --i)
pyramid[i] = laplacian[i] + upsample(pyramid[i+1]);
out = matrix_cast<rgb_pixel>(pyramid[0]);
}
int main()
{
try
{
//加载人脸检测器
frontal_face_detector detector = get_frontal_face_detector();
//加载人脸关键点检测器
shape_predictor sp;
deserialize("shape_predictor_68_face_landmarks.dat") >> sp;
//加载需要处理的图像
matrix<rgb_pixel> img;
load_image(img, "test.jpg");
//检测人脸
std::vector<rectangle> dets = detector(img);
//对每个人脸进行处理
for (auto&& det : dets)
{
//提取人脸关键点
full_object_detection shape = sp(img, det);
//提取人脸区域
matrix<rgb_pixel> face_chip;
extract_image_chip(img, get_face_chip_details(shape,150,0.25), face_chip);
//对人脸区域进行去模糊处理
matrix<rgb_pixel> deblurred_face_chip;
deblur_image_pyramid(face_chip, deblurred_face_chip);
//将去模糊处理后的人脸区域替换原图中的人脸区域
replace_image_chip(img, deblurred_face_chip, get_face_chip_details(shape,150,0.25));
}
//保存处理后的图像
save_jpeg(img, "result.jpg");
}
catch (exception& e)
{
cout << e.what() << endl;
}
}
```
以上代码中,我们使用 `pyramid_down` 函数来生成高斯金字塔,并对金字塔进行处理。需要注意的是,在使用 `pyramid_down` 函数时,需要指定金字塔的下采样倍数,本例中采用的是下采样倍数为 2 的高斯金字塔。
dlib19.24 引用哪个版本的 libjpeg
dlib 19.24 默认使用 libjpeg-turbo 作为 JPEG 图像的编解码库,版本号为 1.5.1。不过,如果您使用的是基于 Debian 或 Ubuntu 的 Linux 发行版,则可能会自动安装 libjpeg8 或 libjpeg62-turbo 这两个软件包中的一个作为 libjpeg 库。
如果您想使用其他版本的 libjpeg 库,可以手动修改 dlib 的 CMakeFiles.txt 文件中关于 libjpeg 的配置参数,具体方法可以参考 dlib 的官方文档:https://github.com/davisking/dlib/blob/master/dlib/cmake/CMakeLists.txt