dlib 19.24 中 get_affine_transform遗弃了吗
时间: 2023-11-12 16:04:19 浏览: 111
在dlib 19.24版本中,确实已经将get_affine_transform函数遗弃。相应地,dlib团队提供了一个新的函数get_similarity_transform来代替它。这个新函数的作用与get_affine_transform类似,但是它只能生成相似变换矩阵,而不是一般的仿射变换矩阵。
如果你需要使用仿射变换矩阵,则可以考虑使用其他的库或者自己实现一个仿射变换函数。
相关问题
dlib 19.24 中 get_affine_transform 为什么遗弃
在 dlib 19.24 版本中,`get_affine_transform` 函数被遗弃的原因是因为它的实现方式存在一些问题。该函数的主要功能是计算一个仿射变换矩阵,该矩阵可以将一个图像中的一组点映射到另一个图像中的一组点。然而,该函数的实现方式存在一些数值稳定性问题,导致在某些情况下计算结果不准确,甚至可能出现数值错误。
为了解决这个问题,dlib 团队在后续版本中引入了一个新的函数 `find_affine_transform`,该函数使用更加稳定和准确的算法来计算仿射变换矩阵。因此,如果你需要计算仿射变换矩阵,建议使用 `find_affine_transform` 函数而不是 `get_affine_transform` 函数。
dlib19.24 frontal_face_detector 设置人脸检测大小
在dlib19.24版本中,可以使用`dlib::simple_object_detector`类来设置人脸检测器的大小。具体来说,可以通过以下代码设置最小和最大人脸大小:
```cpp
dlib::simple_object_detector detector;
dlib::simple_object_detector::kernel_1a data;
// 设置最小和最大人脸大小
data.set_detection_window_size(min_size, max_size);
// 从文件或流中读取人脸检测器数据
dlib::deserialize(detector_file_stream) >> data;
detector = dlib::simple_object_detector(data);
```
这里的 `min_size` 和 `max_size` 参数指定了人脸检测器应该用于检测的最小和最大人脸大小。请注意,这里的大小指的是人脸在图像中的大小,而不是人脸检测器本身的大小。
另外,也可以使用 `dlib::frontal_face_detector` 类来设置人脸检测器的大小。具体来说,你可以将一个 `dlib::rectangle` 对象作为参数传递给构造函数,该对象指定了检测器应该用于检测的最小和最大人脸大小。例如,以下代码创建了一个使用最小大小为80×80像素和最大大小为120×120像素的人脸检测器:
```cpp
dlib::frontal_face_detector detector = dlib::get_frontal_face_detector();
dlib::rectangle face_size(80, 80, 120, 120);
detector = dlib::frontal_face_detector(detector, face_size);
```
请注意,这里的大小指的是人脸在图像中的大小,而不是人脸检测器本身的大小。
阅读全文