• 主页
  • 归档
  • 分类
  • 照片墙
所有文章 友情链接 关于我

  • 主页
  • 归档
  • 分类
  • 照片墙
  1. 1. 依赖库安装
    1. 1.1. ubuntu系统
    2. 1.2. centos系统
  2. 2. 编译与安装
  3. 3. java调用C/C++模块
    1. 3.1. linux
    2. 3.2. windows
  4. 4. maven本地安装jar包

opencv编译安装

2018-01-10 09:24:53
总字数 761
预计阅读时间 3 分钟

依赖库安装

ubuntu系统

1
2
3
apt-get install build-essential
apt-get install cmake libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install python-dev python-numpy libtbb2 libtbb-dev libjasper-dev libdc1394-22-dev

(上面大部分的库ubuntu都自带的 , 安装有问题就跳过)
如果需要用java开发
则需要安装ant
apt-get install ant

centos系统

1
2
3
4
5
6
7
8
yum -y install epel-release
yum install gcc gcc-c++
yum install cmake
yum install python-devel numpy
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install gstreamer-plugins-base-devel

如果需要用java开发
则需要安装ant

1
yum install ant

创建install-ffmpeg.sh
授权chmod +x install-ffmpeg.sh
并执行./install-ffmpeg.sh
内容如下

1
2
3
4
5
6
7
8
sudo rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 
yum repolist
sudo rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum repolist
yum update -y
yum install -y ffmpeg
ffmpeg -version

yum install ffmpeg-devel

编译与安装

注意 : 上面在安装ant的过程 , 会自动安装openjdk-jre
但是此时只有jre , 没有jdk , 要编译出java程序可用的jar包和原生库 , 必须有jdk才行
通过apt安装openjdk的jdk可以 , 下载oracle的jdk也可以 , 不过后者需要手动加入到环境变量

1
2
3
4
5
mkdir build
mkdir install
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/root/opencv-3.4.1/install -DBUILD_TESTS=OFF ..
make && make install

如果ANT和JNI都有值的话就没问题 , JNI没有值的话可能是因为没装jdk , 或者没有加入环境变量PATH当中
编译也不会报错 , 只不过编译后不会生成jar包和opencv_java341.so的原生库
CMAKE_INSTALL_PREFIX表示安装的目标位置

如果执行过程中
ippicv_2017u3_lnx_intel64_general_20170822.tgz
下载过慢或失败
可以手动下载这个包放到.cache/ippicv目录下
文件名需要加上md5 ( 可以使用md5sum命令得到 )
也就是
4e0352ce96473837b1d671ce87f17359-ippicv_2017u3_lnx_intel64_general_20170822.tgz

java调用C/C++模块

linux

程序运行前需要添加环境变量

1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/native

(就是编译后的安装目录里面lib(或者是lib64)当中所有.so文件 以及libopencv_java341.so 都放在该目录下)
之后创建并执行如下shell脚本

1
2
3
4
5
6
7
8
9
10
native_folder=/usr/local/native
for so_file in ${native_folder}/*
do
file_name=`basename ${so_file}`
if [ ${file_name} = "libopencv_java341.so" ];then
continue
fi
`ln -s ${so_file} ${so_file}.3.4`
echo "已创建软连接${so_file}.3.4"
done

native_folder就是放置.so文件的目录 , 根据实际情况而定

windows

需要把opencv_java341.dll文件放到%JAVA_HOME%/jre/bin里面

maven本地安装jar包

要在maven项目当中引入这个jar包使用 , 并且保证打包过程正确加入这个jar包
可以手动安装到本地maven仓库

1
mvn install:install-file -Dfile=opencv-341.jar -DgroupId=org.opencv -DartifactId=opencv -Dversion=3.4.1 -Dpackaging=jar

当然也可以选择不安装到本地仓库
而是直接放进项目里面 , 比如说放在了项目里的lib目录下

1
2
3
4
5
6
7
<dependency>  
<groupId>org.opencv</groupId>
<artifactId>opencv</artifactId>
<version>3.4.1</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/opencv-341.jar</systemPath>
</dependency>
  • linux
  • opencv
  • linux

扫一扫,分享到微信

expect-交互式命令行自动化执行
Lamdba表达式(2)-Stream 
© 2024 夏夜梦星辰
鲁ICP备19028444号
Power By Hexo
  • 所有文章
  • 友情链接
  • 关于我
{{searchItem.query}}
标签: 分类:
  • maven
  • 持续集成
  • JMS
  • 线程
  • JavaScript
  • ECMAScript6
  • 单元测试
  • Promise
  • Web Worker
  • 函数
  • prototype
  • 模块化
  • 正则表达式
  • 数据库
  • MongoDB
  • 索引
  • 集群
  • 全文检索
  • flutter
  • dart
  • git
  • 版本控制
  • linux
  • shell
  • docker
  • nginx
  • jenkins
  • opencv
  • vim
  • react
  • react native
  • 前端
  • css
  • HTML5
  • Hexo
  • sass
  • Three.js
  • TypeScript
  • Vue
  • 组件化
  • base64
  • webpack
  • nodejs
  • gulp
  • TensorFlow
  • 机器学习
  • 算法
  • 动态规划
  • 数据结构
  • Java
  • JavaScript
  • MongoDB
  • flutter
  • Git
  • linux
  • react
  • 前端杂烩
  • 男生女生
  • 算法
  • 十年饮冰,难凉热血
  • †少女癌†
  • 猫与向日葵
  • coderfun
  • JENKINS
  • API管理后台
愿你最终能接纳每一面每一种的自己
独自活着便是团圆