一.前言
JavaWeb在物联网项目中的优势凸显,其强大的开发框架简化了开发流程,跨平台性方便在不同设备上部署,安全性机制有助于保护敏感信息,同时多线程支持和性能优化提高了系统的高效处理能力。然而OpenCV常常在c++、Python中被使用,事实上OpenCV也给Java提供了解决方案。
二.下载OpenCV安装包
Releases - OpenCV链接里是OpenCV发行的版本,本文采用时下最新的4.9.0,注意版本号,因为这将在下面的依赖中进行修改。
根据电脑操作系统下载对应的版本。
三.将jar包和ddl文件导入到项目模块中
找到opencv/build/java目录下的opencv-490.jar
再找到opencv/build/java/x64目录下的opencv_java490.dll
在模块下建立一个包lib粘贴这两个文件
四.引入依赖
org.opencv opencv4.9.0 system ${basedir}/lib/opencv-490.jar
这里的版本依据第一步下载的OpenCV版本
五.测试
public class Main { static { // 加载本地OpenCV库 System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } public static void main(String args[]) { // 读取图像文件并存储在src变量中作为输入图像 Mat src = Imgcodecs.imread("C://Users//Yemax//Pictures//Screenshots//1.png"); // 创建一个空的Mat对象dst,用于存储经过处理调整后的图像 Mat dst = new Mat(); if (src.channels() == 3) { // 将RGB图像转为灰度图像 Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2GRAY); } else { System.out.println("图像不是BGR格式"); } // 使用HighGui库显示原始图像和修改后的图像 HighGui.imshow("原图", src); HighGui.imshow("新图", dst); // 等待用户关闭窗口 或 等待用户按下任意键继续程序执行 HighGui.waitKey(0); // 释放内存 src.release(); dst.release(); } }
六.效果展示
七.参考文章
Java使用OpenCV进行图像操作-阿里云开发者社区 (aliyun.com)