OpenCV和JavaCV--安装经验

写在前面的话

OpenCV是偶然接触到机器视觉的一部分,完全从零开始,以下是个人在安装OpenCVJavaCV的部分经验,因为上一边踩坑一边安装的,难免很多地方装了一半就没删去,而且这是回顾之前的过程,仅供参考,欢迎讨论。


1. OpenCV


OpenCV是一个跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上,同时,具有C ++,Python,Java和MATLAB接口,主要倾向于实时视觉应用。简而言之,OpenCV是搞图片视觉分析的,简单,好用


2. MAC上的OpenCV

公司电脑清一色是Mac,还有个台式机装ubuntu用来测试,所以我的opencv学习都是在这两个平台上的,如果错误,欢迎指正。


2.1. 安装Python

  • Mac上自带的是Python 2.7mac的默认的自带python
  • 我的建议是用新的python,毕竟3.0以后的语法稍微不同,以后也应该是主流。更新的python3的环境

  • 提供两种安装方式:
    1. brew install python3,等待自动安装,进行配置。


    2. Python官网,选择对应系统的Python安装即可,安装后可自动配置环境。

  • 小tips:如果在terminal里面输入:python默认是打开自带的2.7的版本,输入python3,才会进入到新的环境。


2.2. 安装OpenCV

安装教程只是提供个大概,因为我不是一边装一边写的博客,这只是回忆过程(可能会有错误,不能保证),网上教程很多,且安装简洁。


建议使用pip安装,源代码编译属实麻烦。

pip3 install opencv-python
顾名思义,安装OpenCV的python拓展

测试本地OpenCV环境
OpenCV本地测试
import进的cv2没报错,代表本地环境搭建完成,可在python的默认编辑器内使用。


2.3. PyCharm中的OpenCV使用

安装上OpenCV以后,不代表本地的不代表本机的PyCharm中就能使用,还需要安装一下package
打开preference
PyCharm的设置


安装package

左侧表示的是当前项目下的package,我这里项目名:pythonProject3
右侧➕号下,是我当前已经项目中已经安装的package,意味着import 不会出错


"商店中找package"
install 即可使用,这里我用的是opencv-python




放上一个测试小demo:

import cv2 as cv

# 填写图片路径
img = cv.imread('/Users/mac/PycharmProjects/pythonProject3/image/lenna.jpg')
cv.show("img", img)
cv.waitKey(0)



3.Ubuntu上的OpenCV

本来老板搞出了个python上的demo让我接着往下搞,我就在python上边学习边摸索。没想到搞出来个小案例以后,老板说JAVA上有个JavaCV封装了O喷CV,你在python上能跑通,Java上也一定能转型成功。行吧,发工资的最大,不过重新学习一下JAVACV。下文是我在Ubuntu的JavaCV的坑,仅作参考。




3.1 Ubuntu上装OpenCV-Python

我既然能在Mac上跑通我的demo,那么同样的代码,在Ubuntu下的环境里也应该能跑通吧。既然这样。。。。那么第一步,先在Ubuntu上装个pythonOpenCV跑跑测试一下。(这里默认在Ubuntu上已经装了Python

  1. 安装OpenCV环境

    Ubuntu上的环境特别麻烦,需要cmake安装
    这里贴一个博主的帖子,主要过程大同小异(侵删)。https://blog.csdn.net/public669/article/details/99044895
    注:这里是装在了本机的环境中,因为安装编译了一系列库

  2. PyCharm中使用OpenCV
    **我不确定**是否一定要先第一步,因为在可以在PyCharm中package中搜opencv-python
    理论上在PyCharm中装上这个package便可import使用。
  3. 测试
    这里还可以用上文贴的demo测试,就不贴了。

3.2 Ubuntu上装JavaCV

重头戏来了,Java CV!!

JavaCV的文档本来就很少,且每个人多多少少都会遇到一些坑。当我们面向百度去搜索相关内容的时候,就会借鉴出别人的坑,引入更大的坑。所以,一切仅供参考,欢迎讨论。


  1. 明确你想怎么在JavaCV中使用OpenCV

网上一搜Ubuntu安装JavaCV,很多推荐的都是源文件代码编译,大致目的是为了编译出Ubuntu下需要的.jar和.so文件,从而在Java中运行jar,实现导入,这里推荐另外一种方式。
我在初期也是编译到了一半,发现导入使用的时候一直报错,后来发现了新方法。

  1. Maven仓库使用JavaCV
<!-- https://mvnrepository.com/artifact/org.bytedeco/javacv -->
  <dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>javacv</artifactId>
      <version>1.5.5</version>
  </dependency>
      <!-- https://mvnrepository.com/artifact/org.bytedeco/javacv-platform -->
  <dependency>
      <groupId>org.bytedeco</groupId>
      <artifactId>javacv-platform</artifactId>
      <version>1.5.5</version>
  </dependency>

切记两个maven依赖一个都不能少,这个是maven仓库中的JavaCV,而JavaCV包含了对OpenCV的封装,当然其中也封装了FFmpeg等接口,可通过JavaCV直接调用。

  1. 挖坑

在这里给大家挖几个坑

  1. 切记不要搜索.dll或者.so动态链接一类的文章,这是一条不归路,是因为这是源代码编译才会引出的结果,我们用的是maven依赖,互不相干,一般maven中的就够用了
  2. 编写代码时,不要import错包! 例如:一般是org.bytedeco.opencv.*下的包,不要导入org.opencv.*,完全不一样,后者好像是源代码编译后,在javaProject项目结构中引入jar导入使用的(我也是猜测)。
  3. 这种JavaCV的不需要网上说的那种System.load()去加载本地的jar包,那也是一条不归路。
  1. 测试
    放个demo试试
public static void main(String[] args) {
Mat mat = imread("/Users/mac/IdeaProjects/JavaCV/images/test.jpg");
imshow("img",mat);
waitKey(0);
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值