开发者

在Java中使用OpenCV实践

目录
  • 前言
  • 一 、OpenCV
    • 1.简介
    • 2.下载与安装
    • 3.目录说明
  • 二、在Java项目中使用
    • 三 、测试
      • 1.测试代码
      • 2.测试结果
    • 总结

      前言

      最近工作上有个项目,涉及到一些有关图像的操作,正好得知有OpenCV这一个开源库。

      在网上查找了一些资料,发现OpenCV有很多妙用,例如人脸识别、车牌识别等,甚至有大佬能用它来做自动驾驶。感觉挺有意思的,小记一下。

      一 、OpenCV

      1.简介

      OpenCV (开源计算机视觉库) 是一个开源的BSD许可库,其中包含数百种计算机视觉算法。它为开发者提供了Java、C++和python接口,支持Windows、linux和android。

      OpenCV被广泛应用于各种领域,例如安防监控、智能驾驶、机器人视觉、虚拟现实等。

      官网文档地址:OpenCV: OpenCV Tutorials

      参考教程:OpenCV官方文档_w3cschool

      2.下载与安装

      下载地址:Releases - OpenCV

      根据自己需要,选择版本以及对应的平台,这php里版本选4.10.0,平台选Windows。

      在Java中使用OpenCV实践

      下载后是一个exe,双击安装即可。

        &编程nbsp;             

      在Java中使用OpenCV实践

      3.目录说明

      安装完成后的目录如下:

      在Java中使用OpenCV实践

      build为构建后的文件,sources是OpenCV的源代码,我们进入build:

      在Java中使用OpenCV实践

      因为我们是java开发,所以进入java文件夹,其中有个opencv-4100.jar,这个是我们开发中需要用到的jar包。

      x64与x86代表不同的系统,我们是在x64系统中使用,所以选择x64,打开文件夹后里面有一个dll文件,这也是我们开发中需要调用的库文件。

      在Java中使用OpenCV实践

      在Java中使用OpenCV实践

      二、在Java项目中使用

      我使用的开发软件是 IntelliJ IDEA,因此这里将展示在IDEA中集成OpenCV。

      1.打开或新建一个项目

      2.使用快捷键 Shift + Ctrl + Alt + S 打开项目设置,或鼠标右击项目,选择 “打开项目设置”

      在Java中使用OpenCV实践

      3.选择 “模块” → 选中项目 → “依赖” → “+(添加)” → “1.JAR或目录...” → 找到下载的OpenCV-4100.jar → "确定"

      在Java中使用OpenCV实践

      4.找到刚刚添加进来的jar包,"右建" → "编辑" → "+(添加)" → WfEAMPF找到下载的opencv_java4100.dll → "确定"

      在Java中使用OpenCV实践

      在Java中使用OpenCV实践

      以上步骤完成后,就可以开始编码了。

      需要注意的是,如果maven依赖有变更,OpenCV需要重新导入,目前我还没发现解决方法,若有大佬能解决这个问题,恳请告知,小弟不胜感激!

      三 、测试

      1.测试代javascript

      这里运行一个生成灰度图的测试代码,测试是否成功导入OpenCV。

      package org.example;
      
      import org.opencv.core.Core;
      import org.opencv.core.Mat;
      import org.opencv.imgcodecs.Imgcodecs;
      import org.opencv.imgproc.Imgproc;
      
      public class OpenCV_test {
          public static void main(String[] args) {
              //加载 opencv_javaXX.dll
              System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
              //测试图片地址
              String imgPath = "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);
          }
      }
      

      2.测试结果

      在Java中使用OpenCV实践

      灰度图

      在Java中使用OpenCV实践

      原图

      总结

      至此,Java项目已成功导入OpenCV,听说OpenCV还能结合AI模型一起使用,应该挺好玩的,后面有时间的话编程我也会去研究研究,玩一玩。

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新开发

      开发排行榜