opencv人脸识别LBPH问题

opencv face recognition LBPH issue

为了找到使用 opencv 在 rust 中初始化 PtrOfLBPHFaceRecognizer 的合适方法,我已经苦苦挣扎了两天。

let mut void_pointer = libc::malloc(mem::size_of::<c_void>() as libc::size_t) as *mut c_void;
if void_pointer.is_null() {
    panic!("failed to allocate memory");
}

let mut model = PtrOfLBPHFaceRecognizer::from_raw(void_pointer);
let ptr = PtrOfLBPHFaceRecognizer::init(model);
let mut model = PtrOfLBPHFaceRecognizer::deref_mut(ptr);
model.train(&images,&labels);

结果是内存引用无效导致恐慌。

欢迎任何想法。

您可以通过调用 create 方法来完成此操作。 docs.

中也描述了 C++ 中用于初始化它的默认参数
use opencv::face::prelude::*;

// According to docs, these values are the defaults used in C++
let mut model: PtrOfLBPHFaceRecognizer = <dyn LBPHFaceRecognizer>::create(1, 8, 8, 8, DBL_MAX).unwrap();