SpringBoot utiliza el desarrollo y la implementación de OpenCV

Recientemente, se usó OpenCV para el reconocimiento de códigos QR en segundo plano, y también se usaron otros métodos, pero el reconocimiento no fue muy preciso. En comparación, OpenCV es el más preciso. Debido al primer uso, encontré problemas después de usar IDEA para Desarrollar e implementar un servidor Linux bajo Windows Han surgido muchas preguntas, así que haré un registro especial aquí.

1. Desarrollo en entorno windows:

1. Descargue el paquete de instalación del sitio web oficial

(1) Sitio web oficial de Opencv: https://opencv.org/

inserte la descripción de la imagen aquí

(2) Seleccione la versión de Windows

inserte la descripción de la imagen aquí

2. Descomprima el paquete de instalación

El propósito de descomprimir el paquete de instalación es obtener el paquete jar y los archivos dll que contiene. Muchos tutoriales instalan el paquete de instalación directamente y el efecto es el mismo.
ruta del paquete jar: opencv-4.6.0-vc14_vc15\opencv\build\java\opencv-460.jar
ruta del archivo dll: opencv-4.6.0-vc14_vc15\opencv\build\java\x64\opencv_java460.dll
archivo dll según su El sistema es cuántos bits seleccionar

3. Introduce el paquete jar en el proyecto

(1) Cree una nueva carpeta lib en el proyecto para almacenar el paquete jar importado, simplemente coloque el paquete jar en él.

inserte la descripción de la imagen aquí

(2) Introduzca el paquete jar en pom.xml y complete la ruta del archivo lib recién creado en el paso anterior en systemPath.
<dependency>
    <groupId>opencv</groupId>
    <artifactId>opencv</artifactId>
    <version>460</version>
    <scope>system</scope>
    <systemPath>${
    
    project.basedir}/src/main/lib/opencv-460.jar</systemPath>
</dependency>
(3) Si lo ejecuta directamente en este momento, aparecerá Causado por: java.lang.UnsatisfiedLinkError: no opencv_java460 in java.library.path, que se debe a la falta de archivos dll.

inserte la descripción de la imagen aquí

(4) Agregue archivos dll para resolver la excepción de no opencv_java460 en java.library.path.

Coloque el archivo dll en la carpeta System32 del sistema informático, ruta: C:\Windows\System32
inserte la descripción de la imagen aquí

(5) prueba

código de prueba

// 测试OpenCV是否安装成功
public static void main(String[] args) throws Exception {
    
    
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
    System.out.println("mat = " + mat.dump());
}

resultado de la operación
resultado de la operación

2. Implementar en entorno Linux:

1. Descargue el paquete de instalación del sitio web oficial

Sitio web oficial de Opencv: https://opencv.org/Seleccione
la versión del paquete comprimido de Linux
inserte la descripción de la imagen aquí

2. Instalar

(1) Dependencias de instalación
# 缺什么就下什么,其中cmake是最重要的
yum -y install epel-release
yum install gcc gcc-c++  
yum install cmake 
yum install python-devel numpy 
yum install ffmpeg-devel
yum install -y unzip zip
(2) Descomprimir opencv
# 解压
unzip opencv-4.6.0.zip 
# 进入解压后的目录
cd opencv-4.6.0
# 创建名为build目录存放后续生成的一些东西
mkdir build
# 进入build目录中
cd build
(3) compilar

Este paso lleva mucho tiempo, tenga paciencia.

cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..    
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<你想要安装的路径> .. 
make 
make install

yum install ant
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=<你前面设置的安装路径> -DBUILD_TESTS=OFF ..
make -j8
make install
(4) prueba

Si todo es normal, OpenCV se compiló y generó con éxito. Asegúrese de que los siguientes archivos estén empaquetados en los directorios adecuados.

/opt/opencv-4.6.0/build/lib/libopencv_java460.so
/opt/opencv-4.6.0/build/bin/opencv-460.jar

3. Problemas que surgen:

1. Causado por: java.lang.UnsatisfiedLinkError: no opencv_java460 en java.library.path

(1) En el entorno de Windows

inserte la descripción de la imagen aquí
Solución: coloque el archivo dll en la carpeta System32 del sistema informático, ruta: C:\Windows\System32

(2) En entorno Linux

inserte la descripción de la imagen aquí
Solución: coloque el archivo so generado al instalar opencv (ruta: /opt/opencv-4.6.0/build/lib/libopencv_java460.so) en el directorio /usr/lib64/

2. El tiempo de ejecución indica que la clase no se ha creado correctamente

(1) En el entorno de Windows

Solución alternativa: cargue la biblioteca con un bloque de código estático

// 得保证先执行该语句,用于加载库,才能调用其他操作库的语句
static {
    
    
	System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
(2) En entorno Linux

Solución: System.load carga el archivo so generado

static {
    
    
	System.load("/opt/opencv-4.6.0/build/lib/libopencv_java460.so");
}

Supongo que te gusta

Origin blog.csdn.net/qq_37131111/article/details/126588443
Recomendado
Clasificación