OpenCV 编译为java依赖最佳实践

这篇具有很好参考价值的文章主要介绍了OpenCV 编译为java依赖最佳实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv 编译为java依赖最佳实践

背景

OpenCV使用领域越来越广,但作为c++开源软件,作者更新维护并不及时,另外其他第三方java转换方式更加无法及时同步最新版本。
最新版本为4.9.0(20240124)

OpenCV 使用java依赖的几种方式

  1. 使用JavaCV,包含组件较多,大而全,无法及时推出stable发行版;
  2. org.bytedeco, 目前开发版兼容,但同样无最新stable发行版;
  3. 其他第三方产品化的开发版,大多数仅支持移动端(android)
  4. OpenPnp打包,且作者解决了不同java版本兼容和不同操作系统的依赖包引用问题。
    4.1.方式一:
    直接引用OpenPnp编译好的Maven依赖,但无opencv_contrib ;
   <dependency>
      <groupId>org.openpnp</groupId>
      <artifactId>opencv</artifactId>
      <version>4.9.0-0</version>
    </dependency>

4.2 方式二:
手动自行编译【本文使用的自编译方式处理的目的是为了获取第三方贡献的opencv_contrib项目依赖包】,以下步骤为简单示例

编译 opencv为 java lib步骤

1、git下载 openpnp工程

2、编译OpenCV源码
以下为Linux系统示例,Windows/Mac参考其他编译OpenCV的文章,大同小异

下载opencv 或 opencv_contrib源码编译

make build & cd build

cmake -DBUILD_SHARED_LIBS=OFF -D BUILD_opencv_java=ON -D BUILD_opencv_java_bindings_generator=ON ..
# 注意:检查是否有生成java模块(必须)。

make -j8

make install

3、将生成的不同操作系统下libopencv_java490.so、opencv_java490.ddl以及opencv-490.jar 复制到openpnp工程相对应目录下

OpenPnp工程:
java opencv依赖,OPENCV,opencv,java,人工智能,计算机视觉

然后执行打包命令:

mvn install 

即可得到Java工程可直接引用的opencv-490.jar

4、若需要maven坐标的依赖包,并在maven工程中依赖使用,则继续执行:文章来源地址https://www.toymoban.com/news/detail-856886.html

mvn install:install-file -Dfile=/home/.../src/main/resources/opencv-490.jar -DgroupId=org.opencv -DartifactId=opencv -Dversion=4.9.0 -Dpackaging=jar

到了这里,关于OpenCV 编译为java依赖最佳实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv实践-图像去畸变

    由于相机的镜头并不完全理想,成像时会产生线条扭曲、失真等。对双目图像、鸟瞰图等进行处理时,首先要矫正去畸变。 相机的镜头前有一块透镜,由于透镜的形状,当光线穿过透镜时,靠近光轴的光线折射比远离光轴的折射要小,就会产生径向畸变,此时真实世界中的直

    2024年02月16日
    浏览(46)
  • opencv实践项目-人脸检测

    从文件加载级联分类器 读取图片并灰度化 resize灰度图 直方图均衡化,得到对比度更强的输出图像 detectMultiScale检测 分类器是判别某个事物是否属于某种分类的器件,其结果要么是,要么不是,级联分类器,可以理解为将 N 个单类的分类器串联起来,如果一个事物能属于这一

    2024年02月06日
    浏览(71)
  • OpenCV与mediapipe实践

    开发环境:vscode + venv 设置vscode, 建立项目,如: t1/src, 用vscode打开,新建终端Terminal,这时可能会有错误产生,解决办法: 初始化环境  在VSCode中使用CTRL+shift+p命令: 打开命令交互面板;(或点击Setting,点击Command Palette…)输入 Python:Select Interpreter ESC 退出小窗

    2024年02月07日
    浏览(36)
  • opencv实践项目-图像拼接

    图像拼接是计算机视觉中最成功的应用之一。如今,很难找到不包含此功能的手机或图像处理API。在本 文中,我们将讨论如何使用OpenCV进行图像拼接。也就是,给定两张共享某些公共区域的图 像,目标是“缝合”它们并创建一个全景图像场景。当然也可以是给定多张图像,

    2024年02月02日
    浏览(43)
  • Python Opencv实践 - 图像旋转

     

    2024年02月13日
    浏览(49)
  • openCV实践项目:图片文本检测

    上一期我们通过对实验:银行卡卡号识别 加深了对前面所学openCV图像处理的一些理解 openCV实践项目:银行卡卡号识别_老师我作业忘带了的博客-CSDN博客 本次图片文本检测相对于要容易一些,内容如下:   把一个这样的图片,通过仿射变换转换成那样的图片。 然后再通过

    2024年02月07日
    浏览(41)
  • Python Opencv实践 - 图像缩放

         

    2024年02月13日
    浏览(43)
  • Python Opencv实践 - 图像平移

     

    2024年02月13日
    浏览(45)
  • Python Opencv实践 - 图像混合

               

    2024年02月13日
    浏览(54)
  • Python Opencv实践 - 手部跟踪

            使用mediapipe库做手部的实时跟踪,关于mediapipe的介绍,请自行百度。         mediapipe做手部检测的资料,可以参考这里: MediaPipe Hands: On-device Real-time Hand Tracking 论文阅读笔记 - 知乎 论文地址: https://arxiv.org/abs/2006.10214v1Demo地址:https://hand.mediapipe.dev/研究机构: Goog

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包