赞
踩
JavaWeb在物联网项目中的优势凸显,其强大的开发框架简化了开发流程,跨平台性方便在不同设备上部署,安全性机制有助于保护敏感信息,同时多线程支持和性能优化提高了系统的高效处理能力。然而OpenCV常常在c++、Python中被使用,事实上OpenCV也给Java提供了解决方案。
Releases - OpenCV链接里是OpenCV发行的版本,本文采用时下最新的4.9.0,注意版本号,因为这将在下面的依赖中进行修改。
根据电脑操作系统下载对应的版本。
找到opencv/build/java目录下的opencv-490.jar
再找到opencv/build/java/x64目录下的opencv_java490.dll
在模块下建立一个包lib粘贴这两个文件
- <dependencies>
- <!-- 加载lib目录下的opencv包 -->
- <dependency>
- <groupId>org.opencv</groupId>
- <artifactId>opencv</artifactId>
- <version>4.9.0</version>
- <scope>system</scope>
- <systemPath>${basedir}/lib/opencv-490.jar</systemPath>
- </dependency>
- </dependencies>
这里的版本依据第一步下载的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();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。