Linux 环境下使用 OpenCV 显示图片
一、下载虚拟机
① 浏览器地址栏输入 https://customerconnect.vmware.com/downloads/#products_atoz
② 下载 Workstation Pro
③ 点击下载
④ 想激活?自己想办法
二、下载镜像文件(我用的 ubuntu)
① 浏览器地址栏输入 https://www.ubuntu.com/download/desktop
② 点击下载(随便下载一个版本,最上面的是最新版)
三、安装虚拟机
略,自行百度安装虚拟机过程,基本都是下一步下一步,我已经安装过了,就不卸载再重装了
四、打开虚拟机
① 找到你 VMware 的安装目录,双击 vmware.exe
② 开启虚拟机
五、安装 opencv 依赖包
进入 root 权限(需要输入密码,输入第一次启动虚拟机时设置的密码)
sudo su
下面的命令,可以一次安装多个(依赖文件名中间用空格隔开就行),我这里是一个一个装的
apt install cmake
apt install build-essential
apt install pkg-config
apt install libgtk2.0-dev
apt install libavcodec-dev
apt install libavformat-dev
apt install libswscale-dev
apt install libjpeg-dev
apt install libpng-dev
apt install libtiff-dev
apt install libjasper-dev
问题:安装 libjasper-dev 提示无法定位软件包
尝试解决办法:
① sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
② sudo apt update
③ sudo apt install libjasper1 libjasper-dev
④ 然后再尝试安装,apt install libjasper-dev
libjasper-dev 安装完成,继续安装其他的依赖
apt install ffmpeg
六、下载 OpenCV
下载 wget https://github.com/opencv/opencv/archive/3.4.0.zip
,(3.4.0 版,我看好多人都用的这个,我也用这个)
下载 wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
如果下载不下来,尝试使用迅雷下载文件,下载完成后,复制粘贴到虚拟机中
重命名刚下载的两个文件(3.4.0.zip 是第一个下载的,3.4.0.zip.1 是第二个下载的)
七、解压 OpenCV
解压 opencv-3.4.0.zip 到 home 目录
解压 opencv_contrib-3.4.0.zip 到 home 目录
查看 home 目录下解压的文件
八、编译安装 opencv
注:cmake 和两个点之间有个空格
cd /home/opencv-3.4.0
mkdir build
cd build
cmake ..
make
sudo make install
九、测试,使用 OpenCV 显示图片
① 选择任意目录,新建文件夹,举个栗子:在 /usr 目录下新建 display_image
mkdir /usr/display_image
② 进入 /usr/display_image 目录
cd /usr/display_image
③ 编写 CMakeLists.txt
gedit CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(display_image)
FIND_PACKAGE(OpenCV REQUIRED)
ADD_EXECUTABLE(display_image show_image.cpp)
TARGET_LINK_LIBRARIES(display_image ${OpenCV_LIBS})
上面的 display_image 为 ① 中创建的文件夹名,show_image.cpp 为即将编写的 C++ 文件
④ 编写 show_image.cpp,用于显示图片
gedit show_image.cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char* argv[]) {
if (argc != 2) {
printf("usage: image.out <img_path>\n");
return -1;
}
Mat img_mat;
img_mat = imread(argv[1], 1);
if (!img_mat.data) {
printf("NO image data\n");
return -1;
}
imshow("img", img_mat);
waitKey(0);
return 0;
}
⑤ 创建 build 文件夹
mkdir build
⑥ 进入 build 文件夹
cd build
⑦ 执行命令
cmake ..
⑧ 执行命令
make
一切顺利的话,那么此时 build 目录下会有一个 display_image 的文件
上面的 cat.jpg 是我提前准备的一张图片,用于显示
⑨ 执行命令,显示猫片
./display_image cat.jpg
O**K,这猫我先撸为敬
十、可能遇到的问题
问题 1:Falied to load module “canberra-gtk-module”
解决办法:
apt install libcanberra-gtk-module
问题 2:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
解决办法:
// 强制解锁
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
还不行,关闭当前终端,重新打开一个终端试试
还不行,重启虚拟机试试
祝你好运,祝地球好运…