Ubuntu18.04 + opencv(C++)虚拟机环境
文章目录
在虚拟机创建环境
先去官网下载Ubuntu18.04的iso文件
然后打开虚拟机进行配置安装:
这里我是用的VM版本是15.5版本
-
点击创建新的虚拟机
-
选择自定义,然后点击下一步
-
不用修改直接点击下一步
-
选择稍后安装操作系统,然后点击下一步
-
选择对应的系统,然后下一步
-
输入虚拟机的名称,选择安装位置,然后点击下一步
-
选择处理器和内核数量(1个处理器,内核数量为4),然后点击下一步
-
选择虚拟机内存大小,我的电脑内存是16G,所以我选择了4G,可以根据自己的电脑内存进行合适的选择,然后点击下一步:
-
然后选择网络类型为使用网络地址转换,点击下一步
-
I/O控制器类型,使用推荐,直接点击下一步
-
磁盘类型使用推荐,直接点击下一步
-
选择创建新虚拟磁盘然后点击下一步
-
指定磁盘的容量,大家可以保持默认直接点击下一步,电脑磁盘比较大的,可以选择大一点,然后立即分配所有磁盘空间,点击下一步。
-
保持默认,直接点击下一步
-
点击自定义硬件,然后点击新CD/DVD,使用ISO映像文件,这里选择下载的Ubuntu18.04的ISO文件,然后点击USB控制器,改为usb 3.0(因为之后可能需要使用摄像头,所以这里先进行修改,不需要的可以忽略),处理器勾选虚拟化intelVT选项
-
关闭后点击完成,等待创建完成
安装Ubuntu系统
等待创建完成后我们就可以开启虚拟机进行安装系统的配置
- 语言我们先选择英语(English),之后可以再修改为中文,来保证目录路径都是英文,然后点击install Ubuntu。
- 点击continue。
- 选择Normal installation,勾选下面的两个选择,点击Continue。
- 这一步进行磁盘的分区,选择something else,然后点击Continue。
- 按下图步骤进行,然后新建分区
- 先创建一个启动分区256M
- 然后创建一个交换分区“swap”,大小是6G=6144MB
- 最后剩下的分给根分区(“/”)
- 分区创建完成后,点击install Now
- 区域选择shanghai,然后继续
- 输入名字和密码,选择是否需要密码,我选择不需要密码自动登录,然后点击继续
- 进行漫长的等待,等待安装完成
- 安装完成后,点击restart Now
- 最后我们就可以进入系统
修改系统语言
如果不习惯英文,接下来我们修改一下系统语言
- 点击桌面右上角的倒三角,然后点击设置
- 点击Region & Langeuage然后点击Manage Install Languages。
- 点击之后会出现新界面和对话框提示有语言支持需要安装,选择install ,然后会提示输入密码,输入密码之后等待安装完成。
- 安装完成之后我们点击install/Remove Langguages查看简体中文已经安装好:
- 然后我们将汉语(中国)拉到最上方
- 然后关闭界面在下面的输入添加中文输入,然后重启系统
- 重启之后会询问是否更新文件夹名称,我们选择保留旧的名称(勾选不要再次询问我)
- 最后我们的界面就变成了中文
安装VMware Tools工具
启动ubuntu,在VMware菜单栏 - 虚拟机 - 安装VMware Tools点击
然后桌面会出现下面的文件,将其打开,有个压缩包打开
将上面的文件解压缩到主目录
然后打开终端
输入:
ls
cd vmware-tools-distrib
sudo ./vmware-install.pl
回车之后输入密码,会出现很多对话框,如果是yes或no,全部输入yes,如果是目录路径,提示什么输入什么即可。安装成功之后提示:
然后我们关机,在虚拟机界面选择编辑虚拟机设置
在选项中依次点击共享文件夹–总是启用–添加共享文件夹的路径
然后确定关闭,之后添加的共享文件夹就是我们电脑主机和虚拟系统之间传送文件的共享场所。
同样,在虚拟系统中也有类似的文件夹:位置在根目录的mnt文件夹–hgfs文件夹–gxwjj文件夹
这里的文件就是电脑上对应目录的文件。
设置服务器镜像源
在应用程序中选择“软件和更新”
然后按照下面的步骤点击后输入密码。
然后点击关闭,弹出对话框,选择重新载入。
设置完成
更新apt
使用下面的命令行来更新apt
sudo apt update
sudo apt upgrade
然后用apt安装pyhton3和pip3
sudo apt install python3
sudo apt install python3-pip
安装谷歌浏览器和搜狗输入法
安装谷歌浏览器
先在电脑上下载谷歌浏览器,然后放到共享文件夹内,然后再Ubuntu中将对应文件移动到主目录,打开终端执行下面命令。
sudo apt install libappindicator1 libindicator7
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt -f install
安装完成
安装搜狗输入法
打开 系统设置 语言支持
将 键盘输入法系统 修改为 fcitx
在新装的系统中没有fcitx,所以我们得先安装fcitx
sudo apt install fcitx
安装完成后就可以安装输入法了
访问网站下载最新搜狗输入法-linux,然后执行以下命令
第一行的命令要根据版本进行修改(下载的deb文件名)
sudo dpkg -i sogoupinyin_2.4.0.3469_amd64
sudo apt -f install
然后重启系统就可以使用搜狗输入法
安装完成
安装vim
安装vim
sudo apt install vim
安装opencv(C++)
- 先下载opencv3.4.5(下载链接),然后保存在Ubuntu的主目录下。
- 安装cmake、git和pkg-config
sudo apt install cmake git pkg-config
- 安装常用图像工具包
//安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
//安装tif格式图像工具包
sudo apt-get install libtiff5-dev
//安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev
//安装png图像工具包
sudo apt-get install libpng12-dev
这里安装第三个JOEG-2000图像工具包时显示无法定位到libjasper-dev ,使用下面命令行解决(libjasper1 是 libjasper-dev的依赖包):
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe"
sudo apt update
sudo apt install libjasper1 libjasper-dev
- 安装视频I/O包
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
- 安装gtk2.0
sudo apt install libgtk2.0-dev
- 安装优化函数包和依赖库
sudo apt install libatlas-base-dev gfortran
- 解压下载的opencv压缩包,然后进入解压后的文件夹,新建一个build文件夹,进入build文件夹
unzip opencv-3.4.5.zip
cd opencv-3.4.5/
mkdir build
- 执行cmake和make
注意cmake后面是空格加两个点
cmake ..
sudo make
- 等待make完成后执行install
sudo make install
- 配置opencv编译环境,首先将opencv的库添加到路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
,执行此命令然后打开一个文件(可能为空),在文件末尾添加/usr/local/lib
,关闭之后执行sudo ldconfig
,使刚才的配置生效。然后配置bash:sudo gedit /etc/bash.bashrc
,在末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存后执行下面命令使配置生效:
source /etc/bash.bashrc
然后更新:
sudo updatedb
现在就配置成功了。接下来我们可以运行例程测试:
进入解压opencv-3.4.5的目录下,cd到smaples/cpp/example_cmake目录下
执行下面命令
cmake .
make
./opencv_example
执行结果是:
配置虚拟机摄像头
在VMware虚拟机菜单栏点击虚拟机
按下面方法连接所需要的摄像头
我这里使用的是usb摄像头,同样笔记本自带的摄像头也可以进行连接。
这样操作之后,我们再次执行上面的程序就可以正常显示摄像头画面(按CTRL+C可以退出程序执行)。
但是还是会出现错误提示:解决方法是:
执行语句
sudo apt install libcanberra-gtk-module
安装之后再次执行,不会报错
至此,我们的opencv环境配置完成(不需要摄像头的可以不连接摄像头)。