Ubuntu16.04配置安装Opencv3.*版本详细介绍和解释(2.*版本也可以),并在Pycharm中成功使用import cv2

本文详细介绍如何在Ubuntu系统上从源码安装OpenCV。包括安装必要的依赖库、使用CMake进行配置、创建配置文件及环境变量等步骤。
如何配置opencv.
ubuntu是不带opencv的,用sudo apt-get也get不来,只能自己下载再tar了。
1、先下载安装一个cmake,cmake是一个跨平台的编译工具,编译opencv source时需要。在终端输入
lxy@lxy-OptiPlex-7010:~$ sudo apt-get install cmake
就行了。
安装后可以输入查看是否成功:
lxy@lxy-OptiPlex-7010:~$ cmake –version
看一下能不能看到版本号,看到了就说明安装成功了。
2、opencv有很多的依赖库,那我们需要提前安装一下:
lxy@lxy-OptiPlex-7010:~$ sudo apt-get install libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg8-dev libjpeg-dev libtiff5-dev libswscale-dev libjasper-dev
3、下载一个opencv-3.4.1,【提供一个2.4.9版本的网盘下载(这个网盘是2.4.9版本的,不需要的可以忽略继续),http://pan.baidu.com/s/1pLhqb4v 。】,去opencv官网点击 RELEASES,会看到很多版本,但是唯独看不见Ubuntu或者Linux版本,哈哈哈,很坑,其实我们需要的就在其中,点击Sources,下载相应的压缩包,完成后解压,把opencv-3.4.1放到
/usr/local/  目录下(直接鼠标粘贴复制可能不行,因为权限不够,所以建议使用命令行)
终端输入
lxy@lxy-OptiPlex-7010:~$ sudo mv (下载解压后opencv3.4.1所在的路径) /usr/local/opencv-3.4.1

4、生成makefile文件:lxy@lxy-OptiPlex-7010:~$ cd /usr/local/opencv-3.4.1

进入目录后,建议新建一个Build文件夹,然后在make,有的也会直接在这一步执行make而不新建文件夹,这里先介绍使用新建一个文件夹来实现。4.1和4.2只需要执行一个就可以了。

4.1 

lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$ mkdir build
lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$ cd build
...../opencv-3.4.1/build$ cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local 
........(路径太长我就省略了,别看不懂这些点,自己敲上的)/opencv-3.4.1/build$make (这一步执行的可能比较慢,等着就行了)
......./opencv-3.4.1/build$make install

......./opencv-3.4.1/build$make clean

{注意:如果这里有的过程出错了,需要重新cmake 或者make的时候,需要删除一下缓存文件,在终端输入以下命令

lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$ sudo rm CMakeCache.txt}

4.2

如果不通过新建一个文件夹来实现可能会报错,我也不知道为什么,在这里介绍一下,输入

lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$ cmake .   (这个点不要忘记打,点前边有个空格也可用cmake CMakeLists.txt【具体怎么用有待补充,还没研究】)然后就可以

lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$make了。

make后再lxy@lxy-OptiPlex-7010:/usr/local/opencv-3.4.1$sudo make install

5、创建配置文件opencv.conf:  

这时候执行命令行时,可以退出到根目录,也可以在......./opencv-3.4.1/build$这个路径下继续执行,不影响配置。在这里我选择退到根目录(输入 cd退到根目录)

......./opencv-3.4.1/build$ cd

lxy@lxy-OptiPlex-7010:~$ sudo touch /etc/ld.so.conf.d/opencv.conf(新创建一个文件)

lxy@lxy-OptiPlex-7010:~$ sudo gedit /etc/ld.so.conf.d/opencv.conf(打开并进行编辑)

加入一个路径 /usr/local/opencv-3.4.1/build/lib(这个路径是根据自己的实际情况决定的,该路径是libopencv_开头库的目录,直接搜索libopencv_所在的目录,比如我的是/usr/local/opencv-3.4.1/build/lib,所以我就在这里添加/usr/local/opencv-3.4.1/build/lib) 【有的教程是加入加入/usr/local/lib ,因为安装正常的话,在/usr/local/lib路径下也有很多libopencv_开头的库 】保存文件,然后关闭, 然后
lxy@lxy-OptiPlex-7010:~$ sudo ldconfig -v(这条是使opencv库实现共享,至于更深层次的理解可以自己搜一下ldconfig这条命令)
6、配置环境变量lxy@lxy-OptiPlex-7010:~$ sudo gedit ~/.bashrc定位到这个文件的尾部,并添加下面标底色的内容并保存退出
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv-3.4.1/build/unix-install /usr/local/lib/pkgconfig
(这个目录是opencv.pc所在的目录,根据自己的设定来,比如我的就是/usr/local/opencv-3.4.1/build/unix-install,所以我在这里添加/usr/local/opencv-2.4.9/build/unix-install)【有的教程写的是/usr/local/lib/pkgconfig,没有做出解释,其实就是opencv.pc的路径】

export PKG_CONFIG_PATH

退出后,更新环境变量,在终端输入lxy@lxy-OptiPlex-7010:~$ source ~/.bashrc


至此,opencv已经安装到电脑系统中了,如果想在pycharm中实现import不报错还是不行的,原因是还没有与你使用的python建立连接,
在pycharm中,点击setting,查看自己的python是在什么路径下,例如下图是显示在 /usr/bin  下的python2.7


我就要依次输入如下命令,(或者你将cv.py和CV2.so这两个文件复制到 pycharm使用的解析器Python的路径下也可以,这样的话就不用再输入以下两个命令了)
sudo ln -s /usr/local/lib/python2.7/site-packages/cv.py /usr/bin/cv.py
sudo ln -s /usr/local/lib/python2.7/site-packages/cv2.so /usr/bin/cv2.so
这时候就可以在pycharm中使用opencv了
要在 PyCharm 中搭建 OpenCV C++ 开发环境,可按以下步骤进行: 1. **安装 Python pip**:这是搭建环境的基础,确保 Python pip 已经正确安装,以便后续安装 OpenCV - python 包等操作 [^2]。 2. **安装 OpenCV - python 包**使用 pip 安装 OpenCV - python 包,对于 OpenCV4,可以安装opencv - python==4.XX”,这里 XX 表示版本号 [^2]。 3. **创建新的 Python 项目**:打开 PyCharm,创建一个新的 Python 项目。若安装 OpenCV - python 包时未遇问题,PyCharm 会自动识别,可在 Python 代码中使用import cv2” 导入 OpenCV 库 [^2]。 4. **配置 C++ 环境**:虽然上述引用未直接提及在 PyCharm配置 C++ 版本 OpenCV 开发环境的详细步骤,但在 Ubuntu16.04 环境下配置 C++ 版本 OpenCv 开发环境时,要注意图片路径需为要显示图片的具体路径,且 find_package() 中 OpenCV 大小写要对应安装的目录名称,例如默认安装目录是 /usr/local/share/OpenCV [^3]。在 PyCharm 中,可能也需要类似注意配置文件中路径名称的正确性。 以下是一个简单的示例代码,展示如何在 C++ 中使用 OpenCV 显示图片: ```cpp #include <opencv2/opencv.hpp> #include <iostream> int main() { // 读取图片 cv::Mat image = cv::imread("your_image_path.jpg"); if (image.empty()) { std::cout << "Could not open or find the image" << std::endl; return -1; } // 创建窗口显示图片 cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE); cv::imshow("Display window", image); // 等待按键 cv::waitKey(0); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值