一、什么是OpenCV
OpenCV(Open Source Computer Vision Library)是一个广泛使用的开源计算机视觉库,旨在提供丰富的图像和视频处理功能。它最初由Intel于1999年开发,并演变成为一个全球性的开源项目,得到了众多开发者的贡献和支持。OpenCV可以通过C++、Python、Java等编程语言调用,使得开发者能够在不同平台上进行图像处理和计算机视觉应用程序的开发。作为一个全面且强大的计算机视觉库,OpenCV包含了数百个用于图像处理、特征检测、对象识别、视频分析等领域的函数和工具。无论您是希望读取和显示图像、进行图像滤波、边缘检测、图像分割、特征提取,还是进行目标跟踪,OpenCV都能提供相应的功能丰富的API。
说到底,OpenCV只是一个数字图像处理函数库,要全面掌握OpenCV的使用,只需要明白有哪些函数,每个函数怎么使用。这个系列教程要完成的事情,就是让大家系统的了解OpenCV有哪些函数,熟练掌握每个函数的作用和使用方法。
官网:OpenCv官网
官网文档地址:OpenCV: OpenCV Tutorials
参考教程:OpenCV官方文档_w3cschool
二、下载安装
从OpenCv官网下载所需版本 【这里以windows 4.10.0 版本为例子】
下载后的exe执行安装
三、必要目录介绍
我们使用需要找到两个依赖文件 jar 和 dll
build为构建后的文件包含了 java python
这里要结合java使用,所以选择Java目录 找到所需的jar
java目录下 x64 和 x86 代表不同系统 这里选择x64 找到所需的dll
四、java项目使用
opencv-java4100依赖jar和dll资源-CSDN文库
打开项目结构 : 模块>依赖> + > jar或目录 添加opencv-4100.jar 【注:此版本jar是用jdk11编译的,若是低版本jdk则需要降低opencv版本】
定位到添加的jar 右键选择编辑
选择 + 添加我们所需的 opencv_java4100.dll
代码使用
package com.ap.schedulejob;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
/**
* @Author : AP
* @Date: 2024/10/23 下午8:28
* @Description:
*/
public class OpenCvTest {
public static void main(String[] args) {
//加载 opencv_javaXX.dll
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//测试图片地址
String imgPath = "d:/path/path/xxxx.jpg";
//读取图片
Mat img = Imgcodecs.imread(imgPath);
//生成灰度图
Mat gray = new Mat();
Imgproc.cvtColor(img,gray, Imgproc.COLOR_BGR2GRAY);
//保存图片
Imgcodecs.imwrite("./result.png", gray);
// 使用Imgcodecs.imread函数以灰度模式读取图像
Mat image = Imgcodecs.imread(imagePath, Imgcodecs.IMREAD_GRAYSCALE);
// 反转灰度图像 对图像进行按位非操作,实现灰度反转
Core.bitwise_not(image, image);
//保存图片
Imgcodecs.imwrite("./result-grayInv.png", gray);
}
}
当然也可以收到将jar和dll配置的java工程内,方便共同开发
将jar和dll 移动到项目库目录下
例如,如果您使用Maven,您可以在pom.xml文件中添加依赖,如下所示
<dependencies>
<dependency>
<groupId>org.opencv</groupId>
<artifactId>opencv</artifactId>
<version>4.10.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/opencv-4100.jar</systemPath>
</dependency>
</dependencies>
对于Gradle,您可以在build.gradle文件中添加依赖:
dependencies {
implementation files('lib/opencv-4100.jar')
}
dll加载
System.load(".../lib/opencv_java4100.dll");
//System.loadLibrary(Core.NATIVE_LIBRARY_NAME);