简体   繁体   English

使用 OpenCV 在 Java 中加载并行处理模块时出错

[英]Error loading parallel processing modules in Java using OpenCV

I am trying to detect faces in an image using the OpenCV library in Java. I am using version 4.7.0-dev of OpenCV. When I run the program, I get the following error:我正在尝试使用 Java 中的 OpenCV 库检测图像中的人脸。我使用的是 OpenCV 的 4.7.0-dev 版本。当我运行该程序时,出现以下错误:

[ INFO:0@0.885] global registry_parallel.impl.hpp:96 cv::parallel::ParallelBackendRegistry::ParallelBackendRegistry core(parallel): Enabled backends(3, sorted by priority): ONETBB(1000); TBB(990); OPENMP(980)
[ INFO:0@0.885] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Users\ricar\OneDrive\Documentos\libraries\opencv\build\java\x64\opencv_core_parallel_onetbb470_64d.dll => FAILED
[ INFO:0@0.886] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_onetbb470_64d.dll => FAILED
[ INFO:0@0.886] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Users\ricar\OneDrive\Documentos\libraries\opencv\build\java\x64\opencv_core_parallel_tbb470_64d.dll => FAILED
[ INFO:0@0.886] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_tbb470_64d.dll => FAILED
[ INFO:0@0.887] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load C:\Users\ricar\OneDrive\Documentos\libraries\opencv\build\java\x64\opencv_core_parallel_openmp470_64d.dll => FAILED
[ INFO:0@0.887] global plugin_loader.impl.hpp:67 cv::plugin::impl::DynamicLib::libraryLoad load opencv_core_parallel_openmp470_64d.dll => FAILED
[ INFO:0@1.067] global ocl.cpp:1186 cv::ocl::haveOpenCL Initialize OpenCL runtime...
[ INFO:0@1.977] global ocl.cpp:1192 cv::ocl::haveOpenCL OpenCL: found 2 platforms
[ INFO:0@1.977] global ocl.cpp:984 cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: initializing thread execution context
[ INFO:0@1.977] global ocl.cpp:994 cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: creating new execution context...
[ INFO:0@2.571] global ocl.cpp:1012 cv::ocl::OpenCLExecutionContext::Impl::getInitializedExecutionContext OpenCL: device=NVIDIA GeForce MX230
[ INFO:0@2.571] global ocl.cpp:5370 cv::ocl::Context::Impl::__init_buffer_pools OpenCL: Initializing buffer pool for context@0 with max capacity: poolSize=0 poolSizeHostPtr=0

This is my code.这是我的代码。 I believe that my problem is an installation or configuration issue.我相信我的问题是安装或配置问题。

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfRect;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;

class Main{

    public static void main(String[] args){
        
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        Mat image = Imgcodecs.imread("C:\\Users\\ricar\\Downloads\\DSC02281.JPG");
        
        CascadeClassifier classifier = new CascadeClassifier("C:\\Users\\ricar\\OneDrive\\Documentos\\workspace\\LearningJava\\src\\haarcascade_frontalface_default.xml");
        MatOfRect faceDetections = new MatOfRect();
        classifier.detectMultiScale(image, faceDetections);
        
        for(Rect rect : faceDetections.toArray()) {
            
            Imgproc.rectangle(image, rect, new Scalar(0, 0, 255));
            
        }
        Imgcodecs.imwrite("C:\\Users\\ricar\\Downloads\\output.jpg", image);
        
    }
    
}

The error message suggests that the problem lies with the OpenCV parallel plugins.错误消息表明问题出在 OpenCV 并行插件上。 This could be due to a missing or incompatible version of the TBB library, which OpenCV uses for parallel processing.这可能是由于 TBB 库版本缺失或不兼容,OpenCV 将其用于并行处理。

You should check if you have the correct version of TBB installed and that it is located in a directory that is included in your system's PATH environment variable.您应该检查您是否安装了正确版本的 TBB,以及它是否位于包含在您系统的 PATH 环境变量中的目录中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM