首页 > 系统相关 >linux安装opencv

linux安装opencv

时间:2023-11-28 23:44:35浏览次数:47  
标签:cmake x86 opencv 64 usr linux PATH 安装

安装步骤: 1、去官方网站下载使用的压缩包: https://opencv.org/releases.html 2、上传到服务器并解压文件 cd /usr/local/ unzip opencv-2.4.13.zip 3、创建编译目录,用于存放编译文件 在/usr/local/下 mkdir opencv 4、安装和配置依赖支持 如果没有cmake,去cmake的官网http://cmake.org/cmake/resources/software.html下载最新的cmake,通过yum安装的cmake(2.6.4)查询JNI环境失败  安装: wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar xvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 sh bootstrap && make && make install   安装好cmake之后,还需要安装相应的依赖,如下   安装opencv的依赖库  安装python支持,需要先安装numpy   安装图片库的支持   安装ant,如果用java调用的话,必须安装ant  之后开始使用cmake进行编译   

  1. yum install numpy.x86_64 numpy-f2py.x86_64  
  2. yum install libtiff.x86_64 libjpeg.x86_64 libpng.x86_64 jasper-libs.x86_64  
  3. yum install libtiff-devel.x86_64 libjpeg-devel.x86_64 jasper-devel.x86_64 libpng-devel.x86_64     
  4. yum install ant  
   
  1. cd opencv
  2.  用到cmake的选项:
  3.    BUILD_SHARED_LIBS:共享   
  4.    BUILD_EXAMPLES:编译demo   
  5.    BUILD_FAT_JAVA_LIB:java支持 (如果java调用opencv,必须打开这个选项)  
  6.    INSTALL_PYTHON_EXAMPLES:安装python的demo   
  cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_FAT_JAVA_LIB=ON ../opencv-2.4.13      确认log没有报错,如果有错误请根据提示安装相应的库或设置环境变量  如果顺的话,打开编译目录的CMakeCache.txt,可以看到下面的信息 
  1. //Include opencv_java module into the OpenCV build  
  2. BUILD_opencv_java:BOOL=ON  
  说明java支持都已经安装ok    5、使用make进行编译和安装   
  1. make && make install  
  2. sudo cp bin/libopencv_java2413.so /usr/local/lib/  
  3. sudo ln \-s /usr/local/lib/libopencv_java2413.so /usr/lib/libopencv_java2413.so
  错误解决: centos7 make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/grfmt_jpeg2000.cpp.o] 错误 1   In file included from /usr/include/jasper/jasper.h:77, from /usr/local/opencv-2.4.13/modules/highgui/src/grfmt_jpeg2000.cpp:58: /usr/include/jasper/jas_math.h:70:1: error: unterminated #ifndef make[2]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/src/grfmt_jpeg2000.cpp.o] Error 1 make[1]: *** [modules/highgui/CMakeFiles/opencv_highgui.dir/all] Error 2 make: *** [all] Error 2 [root@vm131 opencv]# vi /usr/include/jasper/jas_math.h   错误原因:2017年5月15日,centos更新了jaspe-devel包为jasper-devel.x86_64 0:1.900.1-30.el7_3(旧版本为jasper-devel-1.900.1-29.el7.x86_64) 解决方案: vi /usr/include/jasper/jas_math.h #在 #include 后添加 #ifndef SIZE_MAX #define SIZE_MAX (4294967295U) #endif     意外1: 190服务器发生过一次opencv无法使用的问题,现象就是system.loadlibrary的时候无法加载 找了半天原因,发现是library.path被变更导致   # vi /etc/profile  发现LD_LIBRARY_PATH=被设置成了其他路径(梅工做测试用的), 变更成如下配置了 export PATH=$PATH:/opt/lampp/bin/ export LD_LIBRARY_PATH=/opt/lampp/lib 注释掉这两行,source /etc/profile  一下就可以了。   ps:LD_LIBRARY_PATH的作用 Java有两个Path,一个是classpath,另外一个library.path。 classpath是设置JDK的lib位置. 而library.path是设置引用的非Java类包(如DLL,SO)的位置。   关于LD_LIBRARY_PATH的配置问题: 意外2:之后133服务器因需要增加/opt/lampp/lib,又一次将opencv导致不可用 echo $LD_LIBRARY_PATH; 配置显示也包含usr/lib,但是发现有2个地方配置了LD_LIBRARY_PATH,一个是在/etc/profile,一个是在根目录下vi .bash_profile,此处里也可以进行LD_LIBRARY_PATH的配置。不管三七二十一,先保留一个再试。果然可以了。   最终解决方案 133 我这样修改的,先是去掉了/etc/profile 里 0 这两行配置,然后在根目录下的.bash_profile里改成这样设置: 0  source了一下,opencv就好用了。   export PATH=$PATH:/opt/lampp/bin/ export LD_LIBRARY_PATH=/usr/lib:/opt/lampp/lib   find / -name .bash_profile   备注:JDK的设置没有生效时,看看是否是更改配置前的会话,重新开一个会话看是否有问题

标签:cmake,x86,opencv,64,usr,linux,PATH,安装
From: https://www.cnblogs.com/3xiaoleilei/p/17863467.html

相关文章

  • Linux学习记录:yum管理器
    1.yum是CentOS和RedHat中的Shell前端软件包管理器。2.yum基础源官方源:更新yum仓库本地缓存 3.yum的使用首先要确认网络是否联通,在这里我们可以ping一下外网来测试 然后查看软件包 最左边的是各种操作系统下的软件名称,中间是发行版本,最右边的是发行商。 安装软件......
  • 嵌入式linux主机通过分区镜像生成固件,DD备份分区后打包成固件,px30刷机教程 ,rockchip
    我这边有一个工控路由器因为刷机变砖了,网上下载不到固件,自己暂时还没有搞过编译。我找到了同型号的路由器,把它的系统制作成镜像。具体操作分为三步:第一步,直接用DD命令备份了几个分区,分区我暂时还不知道,直接用分区编号命名:ddif=/dev/mmcblk1p1of=/media/usb0/mmcblk1p1ddi......
  • Linux下的I-O重定向与管道
    Linux下的I/O重定向与管道一、I/O设备Linux中,对系统进行操作时,就需要I/O设备与系统产生交互,同时会产生三种数据,标准输入(0)、标准输出(1)、标准错误(2)。其中标准输入(stdin)默认接受来自键盘的输入,标准输出(stdout)和标准错误(stderr)默认向终端窗口输出,改变默认输出和出入的位......
  • 学习linux“存储管理”收获与心得
    学习Linux的存储管理是一个非常重要的课题,它涉及到如何有效地管理和利用计算机系统中的存储资源。在学习过程中,我收获了以下几点心得体会:   首先,了解文件系统的概念和原理是非常重要的。文件系统是操作系统用来组织和管理存储设备上的文件和目录的一种机制。在Linux中,常用......
  • Linux的安装
    1.Linux简介Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操......
  • 初始Linux
    1.1云计算简介从广义上说,云计算是与信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫做“云”,云计算把许多计算资源集合起来,通过软件实现自动化管理,只需要很少的人参与,就能让资源被快速提供。也就是说,计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以......
  • linux进程管理
    什么是进程?进程是正在系统中运行的程序的实例。每个进程都有唯一的进程标识符(PID),用于在系统中标识和跟踪该进程。进程优先级nice和renice命令nice命令用于启动进程并设置其优先级。值越小,优先级越高。nice-n10commandrenice命令用于修改正在运行进程的优先级。renice10......
  • 深入理解 Linux 中的 I/O 重定向与管道
    在Linux系统中,I/O重定向与管道是非常有用的功能,可以帮助我们更好地管理命令行下的输入和输出。本文将介绍I/O重定向和管道的基本概念以及在实际应用中的用法。1.I/O重定向I/O重定向是一种将命令的输入或输出重定向到指定位置的技术。在命令行中,我们可以使用以下符号来实......
  • linux存储管理
    文件系统与磁盘管理1.文件系统Linux支持多种文件系统,如ext4、XFS、Btrfs等。文件系统是数据在磁盘上的组织方式,它负责管理文件的存储、检索和修改。2.磁盘分区fdisk和parted是常用的工具,用于创建、删除和管理硬盘分区。例如,使用fdisk/dev/sdX可以对指定硬盘进行分区操......
  • linux常用命令
    1、Isls命令是列出目录内容的意思(ListDirecttoryContents)。运行它就是列出文件夹的内容,可能是文件也可能是文件夹。ls-l命令以详情模式(longlistingfashion)列出文件夹的内容。ls-a命令会列出文件夹里的所有内容,包括以"."开头的隐藏文件。注意:在Linux中,文件以“.”开头......