参考文章:
CentOS7编译opencv4.1.0:CentOS7编译opencv4.1.0_jiao_mrswang的博客-CSDN博客_centos编译opencvhttps://blog.csdn.net/jiao_mrswang/article/details/99288762
linux编译命令——make -j8:linux编译命令——make -j8_clarkness的博客-CSDN博客https://blog.csdn.net/clarkness/article/details/86633681
1、下载open430tar.gz安装包
wget https://github.com/opencv/opencv/archive/4.3.0.tar.gz
2、解压安装包
tar -zxvf 4.3.0.tar.gz
3、编译opencv源码
$ cd opencv-4.1.0/
$ mkdir build
$ cd build/
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
此时出现cmake版本过低的问题,当前cmake默认安装的是2.8版本,实际编译open430需要cmake3.5以上版本,所以需要升级cmake版本,如下:
#安装基本工具
[root@localhost ~]# yum install -y gcc gcc-c++
[root@localhost ~]# mkdir /opt/cmake
[root@localhost ~]# cd /opt/cmake/
#下载
[root@localhost cmake]# wget https://cmake.org/files/v3.14/cmake-3.14.5.tar.gz
#解压缩
[root@localhost cmake]# tar zxvf cmake-3.14.5.tar.gz
#删除已安装的 cmake 版本
[root@localhost cmake]# yum remove cmake -y
#安装基本的编译工具
[root@localhost cmake]cd cmake-3.14.5
[root@localhost cmake-3.14.5]# ./configure --prefix=/usr/local/cmake
#安装
[root@localhost cmake-3.14.5]# make && make install
#创建链接
[root@localhost cmake-3.14.5]# ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
#或修改环境变量
[root@localhost ~]# vim /etc/profile
export CMAKE_HOME=/usr/local/cmake
export PATH=$PATH:$CMAKE_HOME/bin
#使配置生效
[root@localhost cmake-3.14.5]# source /etc/profile
#查看版本
[root@localhost cmake-3.14.5]# cmake -version
最终效果:
至此,Centos7 安装 cmake v3.14.5 操作完毕!
好了我们继续编译opencv430:
cd /vt/opencv-4.3.0/build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
#数字为cpu核数的二倍为宜
make -j8
sudo make install
备注:
(1)以上命令将opencv4.3.0安装在了默认路径,默认各部分分别安装在/usr/local/目【include/】 【bin/】 【lib/】3个文件夹下!
(2)-D OPENCV_GENERATE_PKGCONFIG=ON:OpenCV4以上版本默认不使用pkg-config,该编译选项开启生成opencv4.pc文件,支持pkg-config功能。
4、opencv配置环境
(1)配置pkgconfig环境
$ sudo find / -iname opencv4.pc
$ sudo vim /etc/profile.d/pkgconfig.sh
在pkgconfig.sh文件中
写入(可能是空文件):export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
$ source /etc/profile
(2)配置编译环境
$ sudo vim /etc/ld.so.conf.d/opencv4.conf
在opencv4.conf文件中写入(可能是空文件):/usr/local/lib64
$ sudo ldconfig
五、查看opencv4的版本
pkg-config --modversion opencv4
六、测试opencv是否安装完成
cd 到/opencv-4.0.0/samples/cpp/example_cmake 文件夹下
(1)因为OpenCV 4.0需要C++11支持,且生成的pkg-config文件名为opencv4.pc,所以需要对当前目录下的Malefile文件进行修改(红色的框为修改的内容)
(2)$ make
(3)$ ./opencv_example
备注:编译opencv4一定要将OPENCV_GENERATE_PKGCONFIG设置为YES或ON!!!否则在查看版本时会报如下错误:
七、用自己的代码测试opencv4.3.0是否安装成功
代码如下:
#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include
using namespace cv;
using namespace std;
int main()
{
cout
Mat myMat = imread("1.png", 1);
namedWindow("Opencv Image", WINDOW_AUTOSIZE);
imshow("OpencvImage",myMat);
waitKey(5000);
return 0;
}
图像如下:
编译以上代码的命令为:
$ g++ showPhoto.cpp -std=c++11 `pkg-config --libs --cflags opencv4`
备注:
命令查看so文件列表:ldconfig -p
so文件安装在路径 /usr/local/lib64下
java调用参数
//-Djava.library.path=/usr/local/lib64
编译后的libopencv_java430.so文件位置/vt/opencv-4.3.0/build/lib/
java -jar -Djava.library.path=/vt/opencv-4.3.0/build/lib/ vt-1.0.jar
八、解决遇到的问题:未生成libopencv_java430.so文件
(1)JAVA_HOME未设置
vim /etc/profile
添加如下内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile
(2)ant未安装
//解压缩
$ tar -zxvf apache-ant-1.9.7-bin.tar.gz
//由于我的应用都统一放在opt目录,所以我把ant移动到opt目录下,并且修改目录名为ant
$ mv /home/user/Downloads/apache-ant-1.9.7 /opt/ant
//设置环境变量
$ vim /etc/profile
// 在文件最后添加ant环境
export ANT_HOME=/opt/ant
// 并把ant环境添加到path中(“$ANT_HOME/bin:”)
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
// 保存退出
:wq!
//强制更新配置文件
$ source /etc/profile
//测试
$ ant -version
// 如果出现以下提示,说明配置成功
Apache Ant(TM) version 1.9.7 compiled on April 9 2016
重新编译opencv成功:
编译后的libopencv_java430.so文件位置/vt/opencv-4.3.0/build/lib/
注意:默认生成的libopencv_java430.so文件在/usr/local/share/java目录下