IntelliJ IDEA Community Edition 2025.1.7中使用opencv
1、从opencv网站下载opencv4.4.0,下载地址:https://opencv.org/releases/page/3/

2、下载得到
![]()
解压

opencv-4.4.0-vc14_vc15\opencv\build\java目录下

opencv-440.jar是需要的,我的是64位系统,x64\opencv_java440.dll是需要的
3、在项目中导入jar包,



最终把jar包添加进去
4、测试代码
//import org.junit.jupiter.api.Test;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
//import org.springframework.boot.test.context.SpringBootTest;
import java.net.URL;
import static org.opencv.highgui.HighGui.*;
import static org.opencv.imgcodecs.Imgcodecs.imread;
import static org.opencv.imgcodecs.Imgcodecs.imwrite;
import static org.opencv.imgproc.Imgproc.COLOR_RGB2GRAY;
import static org.opencv.imgproc.Imgproc.cvtColor;
//@SpringBootTest
public class Main {
//class DemoApplicationTests {
//@Test
void contextLoads() {}
//@Test
public static void main(String[] args) {
//public void testOpencv() throws Exception {
// 解决awt报错问题
System.setProperty("java.awt.headless", "false");
System.out.println(System.getProperty("java.library.path"));
// 加载动态库
System.load("D:\\tech_data\\code\\opencv440\\opencv_java440.dll");
//URL url = ClassLoader.getSystemResource("D:\\tech_data\\code\\opencv440\\opencv_java440.dll");
//System.load(url.getPath());
// 读取图像
Mat src = imread("D:\\tech_data\\code\\test20260302.jpeg",0);
/*
if (src.empty()) {
throw new Exception("image is empty");
}*/
imshow("image",src);
// 以灰度模式加载图像
waitKey(0);
destroyAllWindows();
}
}
本来用ClassLoader.getSystemResource(),但是没成功。
原因:ClassLoader.getSystemResource()方法是从项目的 Classpath(类路径)中查找资源,例如在 src/main/resources目录下的文件。它不适用于加载任意本地文件系统中的绝对路径。当它找不到指定的资源时,会返回 null。
换成了System.load("D:\\tech_data\\code\\opencv440\\opencv_java440.dll");
当明确知道 OpenCV 动态库的完整绝对路径,可以直接通过 System.load()方法加载。
点击绿色三角形按钮,运行成功,显示出图片。


参考:
https://blog.csdn.net/weixin_45784666/article/details/113815303
----------------------------------------------------------
上面一种方法是使用System.load("D:\\tech_data\\code\\opencv440\\opencv_java440.dll");的方式来加载dll文件,
还可以通过设置VM options 的方式来加载 OpenCV 本地库
1、找到OpenCV 本地库文件,目前路径是 `D:\tech_data\code\opencv440\opencv_java440.dll`。
在工程目录下新建一个lib文件夹,把opencv_java440.dll放到lib文件夹下

2、在 IntelliJ IDEA 中添加 VM Options



在这个框里面添加-Djava.library.path=“lib”,添加库文件所在的路径;
若是没有在当前目录下建立lib文件夹,也可以-Djava.library.path=“D:\tech_data\code\opencv440”
opencv的库目录可以设置在当前工程目录下,也可以不设置在当前工程目录下

3、代码中也要进行相应的修改
原来是
System.load("D:\\tech_data\\code\\opencv440\\opencv_java440.dll");
改为下面这个
// 【关键修改】改为通过库名加载
// 参数是库名,不包含文件扩展名 .dll
// 系统会自动在 `java.library.path` 指定的路径(我们在VM options中设置了)中寻找这个库
System.loadLibrary("opencv_java440");
再次点击绿色三角按钮运行,可以显示图片

核心改动:
之前:System.load(“D:\\tech_data\\code\\opencv440\\opencv_java440.dll”)直接指定文件全路径。
现在:System.loadLibrary(“opencv_java440”)– 指定库名,JVM 根据 java.library.path系统属性去自动查找。
两种方法的对比

更多推荐
所有评论(0)