无root权限在CentOS下安装OpenCV

虽然说没有root权限,但是管理员还是配好了cmake的。
首先是下载官网OpenCV的zip包,下载地址,下载速度较慢。

下载好了之后进入opencv3.4.2文件夹

cd  opencv-3.4.2

然后我们建立一个build文件夹,用来编译用。

mkdir build && cd build

顺便复习一下编译,一般写程序大体步骤为:
1.用编辑器编写源代码,如.c文件
2.用编译器编译代码生成目标文件,如.o
3.用链接器连接目标代码生成可执行文件,如.exe
但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译。但是你需要编写一个规则文件,make依据它来批处理编译,这个文件就是makefile,所以编写makefile文件也是一个程序员所必备的技能。
对于一个大工程,编写makefile实在是件复杂的事,于是人们又想,为什么不设计一个工具,读入所有源文件之后,自动生成makefile呢,于是就出现了cmake工具,它能够输出各种各样的makefile或者project文件,从而帮助程序员减轻负担。但是随之而来也就是编写cmakelist文件,它是cmake所依据的规则。所以在编程的世界里没有捷径可走,还是要脚踏实地的。
步骤为
原文件 -> CMakeLists.txt ->cmake ->makefile ->make -生成目标文件
所以呢,第一步要做的就是编写CMakeLists.txt,OpenCV已经做好了编写,我们只需要设置OFF和ON就可以了。很多人编译出错,是因为按照默认的CMakeLists.txt来生成makefile,其实完全没必要,像我的环境是服务器,不需要视频库,更不需要windows相关的库,事实上,我把cuda也关了。
节选部分如下

OCV_OPTION(WITH_HALIDE         "Include Halide support"                      OFF)
OCV_OPTION(WITH_INF_ENGINE     "Include Intel Inference Engine support"      OFF)
OCV_OPTION(WITH_JASPER         "Include JPEG2K support"                      ON   IF (NOT IOS) )
OCV_OPTION(WITH_JPEG           "Include JPEG support"                        ON)
OCV_OPTION(WITH_WEBP           "Include WebP support"                        OFF   IF (NOT WINRT) )
OCV_OPTION(WITH_OPENEXR        "Include ILM support via OpenEXR"             OFF   IF (NOT IOS AND NOT WINRT) )
OCV_OPTION(WITH_OPENGL         "Include OpenGL support"                      OFF  IF (NOT ANDROID AND NOT WINRT) )
OCV_OPTION(WITH_OPENVX         "Include OpenVX support"                      OFF)

由于我没有root权限,我在我自己的目录下建立了一下usr/local/文件夹,用于存放编译好的目标文件库。

mkdir /home/zhaoyang/usr && mkdir /home/zhaoyang/usr/local

接下来在build文件夹下,用cmake生成makefile
如果显示没有cmake命令,最简单的选择是进入conda环境,用

conda install cmake
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/zhaoyang/usr/local/ ..

之后还是在build文件夹下,用make编译

make -j64
make install

这样一来会发现在home/name/usr/local/ 文件夹下会有一些库,其中lib64下有我们需要的opencv目标文件。
接下来还有设置一下ld环境变量,使得g++能够调用opencv

vim ~/.bash_profile
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/name/usr/local/lib64/pkgconfig
export PKG_CONFIG_PATH 
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/name/usr/local/lib64/
source ~/.bash_profile

准备一个测试opencv的脚本

//OpenCV版本3.0.0  
// 
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
// // 使用标准的cv库
using namespace cv;
int main( )
{
//   // 读取源图像并转化为灰度图像
    Mat srcImage = cv::imread("1000.jpg");
    imwrite("./1.jpg", srcImage);
    printf("aaa");
    return 0;
}

生成可执行文件的时候,注意下面不是引号,而是飘号 `

g++ test.cpp -o test `pkg-config --cflags --libs opencv`

执行的时候

./test 1000.jpg
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值