深度学习2--安装opencv2.4(材料都在百度云上)

使用caffe之前需要安装的重要软件之一

搭建编译环境

$ sudo apt-get update
$ sudo apt-get install build-essential

安装依赖库

$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev


下载源文件:(这里我直接给了百度云盘,如果想自己下载也可以根据下面的命令下载3.0版本)

$ mkdir ~/opencv
$ cd ~/opencv
$ wget https://github.com/Itseez/opencv/archive/3.0.0-alpha.zip -O opencv-3.0.0-alpha.zip
百度云:http://pan.baidu.com/s/1eSl4uWE 密码:v9b5


将百度云的 opencv 和opencv_contrib解压后放在 linux的~目录下。(ippicv文件后面再用)


安装

$ cd opencv
$ mkdir build
$ cd build
$ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
$ make
$ sudo make install
$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
$ sudo ldconfig

注:如果cmake过程中提示:ippicv_linux_20141027.tgz的hash码不对,则将下载的ippicv_linux_20141027.tgz手动复制到 opencv-3.0.0-beta/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b文件夹中,重新cmake即可。


测试

百度云:http://pan.baidu.com/s/1jImIjrS  密码:1tua

下载2个文件放在~下即可。

使用测试命令:

$ g++ -o test_opencv test_opencv.cpp -lopencv_core -lopencv_highgui -lopencv_imgcodecs
$ ./test_opencv


看到以下画面时即为安装成功。


恭喜!!!!


==============可能出现的错误,opencv版本冲突==========

本人因为被坑过,所以建议各位最好在安装caffe第三方库前安装 opencv。主要原因是caffe官网要安装 apt-get install libopencv-dev 命令会导致你安装的opencv版本与此产生版本冲突,所以建议先安装opencv。不然你冲突了还要卸载重新安装,比较麻烦。注意:当你已经安装好opencv时,就不需要再需要apt-get install libopencv-dev命令!

版本冲突截图如下:


提示:libopencv_imgproc.so.3.1, may conflict with liopencv_imgproc.so.2.4

解决方案:

第一步:先删除sudo apt-get autoremove libopencv-dev

第二步:再重装 opencv




最佳参考信息:

http://blog.youkuaiyun.com/u013915633/article/details/49886465








<think>好的,我现在需要帮助用户理解他们运行`pkg-config --modversion opencv`后得到的输出“2.4.9.1”的含义,以及这个版本号的具体意义。首先,我应该确认用户对OpenCV版本号结构的了解程度。用户可能不太清楚版本号的各个部分代表什么,所以需要详细解释。 首先,用户之前遇到了编译问题,特别是关于`cv::imwrite`的未定义引用错误。现在他们执行了检查OpenCV版本的命令,得到了2.4.9.1的结果,想知道这是什么版本。这可能意味着他们的系统安装了较旧的OpenCV 2.4.9.1,而他们可能在尝试使用需要更高版本的代码,比如OpenCV 3或4中的某些功能,导致之前的链接错误。 接下来,我需要解释版本号的结构。通常,软件版本号采用主版本号.次版本号.修订号.构建号的格式。对于OpenCV 2.4.9.1,主版本号是2,次版本号是4,修订号是9,构建号是1。这说明这是一个较旧的版本,属于2.4系列中的某个稳定版本。 用户可能不知道的是,OpenCV 2.4和3.x、4.x之间存在较大的API变化。例如,某些函数在2.4中可能位于不同的模块或头文件中。例如,`cv::imwrite`在2.4版本中可能属于`imgcodecs`模块,但用户如果没有正确链接相应的库,就会出现未定义引用的错误。 另外,用户之前的问题可能正是因为使用了旧版本的OpenCV,而他们的代码可能需要更高版本的支持。或者,他们的系统中有多个版本的OpenCV,导致链接器选择了错误的版本。这时候需要检查CMakeLists.txt中的配置,确保链接了正确的模块,并且路径指向所需的OpenCV版本。 同时,用户可能对如何升级OpenCV或处理多版本共存的问题感兴趣。需要给出具体的步骤,比如如何通过包管理器安装更新的版本,或者从源代码编译安装。但也要提醒用户注意系统兼容性,特别是如果他们使用ROS的话,因为ROS通常依赖特定版本的OpenCV,随意升级可能导致其他问题。 此外,用户可能需要验证安装OpenCV版本是否与他们的开发环境兼容。例如,某些功能在2.4中已被弃用或移除,导致编译错误。建议用户检查官方文档,确认所需功能在2.4.9.1中的可用性,或者考虑升级到更新的版本。 最后,总结用户的潜在需求:他们需要理解当前安装OpenCV版本,以及如何解决因版本不匹配导致的编译问题。可能需要指导他们如何正确配置项目以使用正确的OpenCV版本,或者升级他们的OpenCV安装。</think>`pkg-config --modversion opencv` 的输出 `2.4.9.1` 表示当前系统中通过 `pkg-config` 工具检测到的 OpenCV 版本是 **2.4.9.1**。以下是详细解释: --- ### 一、版本号含义 - **格式**:`主版本号.次版本号.修订号.构建号` - **具体解析**: - **主版本号**:`2` → OpenCV 2.x 系列(较旧的版本) - **次版本号**:`4` → 属于 2.4.x 分支 - **修订号**:`9` → 2.4 系列的第 9 个修订版 - **构建号**:`1` → 针对该修订版的补丁或构建编号 --- ### 二、OpenCV 2.4.9.1 的特点 1. **发布时间**:约 2014 年(OpenCV 2.x 已停止维护,官方推荐使用 3.x 或 4.x) 2. **兼容性**: - 支持 C++98 标准(现代 OpenCV 4.x 默认使用 C++11+) - 某些 API 与 OpenCV 3.x/4.x **不兼容**(例如:函数名、模块划分等) 3. **常见问题**: - 部分功能(如深度学习模块 DNN)在 2.4.x 中不存在 - 若代码基于 OpenCV 3.x/4.x 编写,使用 2.4.x 编译时会报错 --- ### 三、为何需要关注此版本? 1. **编译错误根源**: - 你的代码可能调用了 OpenCV 3.x/4.x 新增的 API(如 `cv::imwrite` 的某些参数格式),但当前链接的 OpenCV 2.4.9.1 中不存在这些实现。 - 错误示例: ```bash 对‘cv::imwrite(...)’未定义的引用 → 版本不匹配导致符号未找到 ``` 2. **多版本冲突**: - 若系统中安装了多个 OpenCV 版本(如 ROS 自带的 3.x 和手动安装2.4.x),需显式指定使用哪个版本。 --- ### 四、下一步操作建议 #### 1. **确认代码所需的 OpenCV 版本** - 检查代码中的 OpenCV 头文件引用和 API: ```cpp #include <opencv2/opencv.hpp> // OpenCV 2.x 常用方式 #include <opencv2/imgcodecs.hpp> // OpenCV 3.x/4.x 专用模块 ``` - 若代码包含 `imgcodecs.hpp`、`videoio.hpp` 等模块化头文件,则必须使用 OpenCV 3.x/4.x。 #### 2. **升级或切换 OpenCV 版本** - **方法 1:安装 OpenCV 3.x/4.x** ```bash # Ubuntu 安装 OpenCV 4.x sudo apt-get install libopencv-dev ``` - 安装后再次运行 `pkg-config --modversion opencv` 确认版本是否更新。 - **方法 2:显式指定版本路径** 在 `CMakeLists.txt` 中强制指定高版本路径: ```cmake set(OpenCV_DIR "/usr/local/opencv4") # 替换为实际路径 find_package(OpenCV 4 REQUIRED) ``` #### 3. **解决多版本冲突(ROS 环境)** - 若使用 ROS Kinetic/Melodic,默认绑定了 OpenCV 3.x: ```cmake # 在 CMakeLists.txt 中使用 ROS 提供的 OpenCV find_package(catkin REQUIRED COMPONENTS roscpp cv_bridge # ROS 的 OpenCV 接口 ) ``` --- ### 五、版本验证示例 ```bash # 查看所有已安装OpenCV 版本 find /usr -name "opencv2" -type d 2>/dev/null # 输出示例: # /usr/include/opencv2 → 头文件路径 # /usr/lib/x86_64-linux-gnu/libopencv_* → 库文件路径 ``` --- ### 总结 - `2.4.9.1` 是 OpenCV 的旧版本,可能导致现代代码兼容性问题。 - **解决方案**:升级到 OpenCV 4.x 或显式链接正确版本。 - **关键命令**:通过 `pkg-config` 和 `CMake` 确保编译时使用的头文件与库文件版本一致。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值