高中教做网站的软件,哈尔滨市高考录取通知书投递,360度街景实景地图下载,企业服务类网站1. 安装必要的库
确保你已经安装了JPEG库、BLAS和LAPACK库。在Ubuntu或Debian系统上#xff0c;可以使用以下命令安装#xff1a;
sudo apt-get update
sudo apt-get install libjpeg-dev libblas-dev liblapack-dev
在CentOS或Fedora系统上#xff0c;可以使用以下命令安…1. 安装必要的库
确保你已经安装了JPEG库、BLAS和LAPACK库。在Ubuntu或Debian系统上可以使用以下命令安装
sudo apt-get update
sudo apt-get install libjpeg-dev libblas-dev liblapack-dev
在CentOS或Fedora系统上可以使用以下命令安装 sudo yum install libjpeg-devel blas-devel lapack-devel
2. 确保dlib使用正确的库
dlib通常会自动检测系统上的JPEG、BLAS和LAPACK库。如果你已经安装了这些库dlib应该能够自动找到并使用它们。
3. 重新编译dlib库
重新编译dlib库并确保启用位置无关代码PIC
cd dlib
mkdir build
cd build
cmake .. -DDLIB_USE_CUDAOFF -DUSE_AVX_INSTRUCTIONSON -DCMAKE_POSITION_INDEPENDENT_CODEON
cmake --build .
sudo make install
DlibFaceDetection.java
public class DlibFaceDetection {static {System.loadLibrary(DlibFaceDetection);}// 声明本地方法public native void detectFaces(String imagePath);public static void main(String[] args) {if (args.length ! 1) {System.out.println(Usage: java DlibFaceDetection image-path);return;}String imagePath args[0];DlibFaceDetection detector new DlibFaceDetection();detector.detectFaces(imagePath);}
}
DlibFaceDetection.cpp
#include jni.h
#include dlib/image_processing/frontal_face_detector.h
#include dlib/image_processing.h
#include dlib/image_io.h
#include iostream
#include DlibFaceDetection.hJNIEXPORT void JNICALL Java_DlibFaceDetection_detectFaces(JNIEnv *env, jobject obj, jstring imagePath) {const char *nativeImagePath env-GetStringUTFChars(imagePath, 0);dlib::frontal_face_detector detector dlib::get_frontal_face_detector();dlib::shape_predictor sp;dlib::deserialize(shape_predictor_68_face_landmarks.dat) sp;dlib::array2ddlib::rgb_pixel img;dlib::load_image(img, nativeImagePath);std::vectordlib::rectangle dets detector(img);for (auto d : dets) {dlib::full_object_detection shape sp(img, d);std::cout Number of parts: shape.num_parts() std::endl;for (unsigned long i 0; i shape.num_parts(); i) {std::cout Part i : shape.part(i) std::endl;}}env-ReleaseStringUTFChars(imagePath, nativeImagePath);
} 4.编译Java代码并生成头文件
确保在编译Java代码时指定编码为UTF-8
javac -encoding UTF-8 -h . DlibFaceDetection.java 5. 编译你的C代码
在编译你的C代码时确保启用位置无关代码PIC并链接到JPEG、BLAS和LAPACK库
g -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -shared -fPIC -o libDlibFaceDetection.so DlibFaceDetection.cpp -ldlib -ljpeg -llapack -lblas 6. 运行Java程序
确保共享库路径正确并运行Java程序
java -Djava.library.path. DlibFaceDetection test.jpg
解释
-DCMAKE_POSITION_INDEPENDENT_CODEON这个选项告诉CMake生成支持位置无关代码的库。-fPIC这个选项告诉编译器生成位置无关代码。-ldlib -ljpeg -llapack -lblas这些选项在编译C代码时链接到dlib、JPEG、LAPACK和BLAS库。