Linux 环境下使用 OpenCV 显示图片

一、下载虚拟机

① 浏览器地址栏输入 https://customerconnect.vmware.com/downloads/#products_atoz
② 下载 Workstation Pro
点击下载虚拟机
③ 点击下载
下载对应操作系统的虚拟机
④ 想激活?自己想办法
就不告诉你

二、下载镜像文件(我用的 ubuntu)

① 浏览器地址栏输入 https://www.ubuntu.com/download/desktop
② 点击下载(随便下载一个版本,最上面的是最新版)
下载任意的操作系统镜像文件

三、安装虚拟机

略,自行百度安装虚拟机过程,基本都是下一步下一步,我已经安装过了,就不卸载再重装了

四、打开虚拟机

① 找到你 VMware 的安装目录,双击 vmware.exe
打开 VMware
② 开启虚拟机
开启虚拟机

五、安装 opencv 依赖包

进入 root 权限(需要输入密码,输入第一次启动虚拟机时设置的密码)
sudo su
进入 root 权限
下面的命令,可以一次安装多个(依赖文件名中间用空格隔开就行),我这里是一个一个装的

apt install cmake
apt install cmake
apt install build-essential
apt install build-essential
apt install pkg-config
apt install pkg-config
apt install libgtk2.0-dev
apt install libgtk2.0-dev
apt install libavcodec-dev
apt install libavcodec-dev
apt install libavformat-dev
apt install libavformat-dev
apt install libswscale-dev
apt install libswscale-dev
apt install libjpeg-dev
apt install libjpeg-dev
apt install libpng-dev
apt install libpng-dev
apt install libtiff-dev
apt install libtiff-dev
apt install libjasper-dev
apt install libjasper-dev
问题:安装 libjasper-dev 提示无法定位软件包
尝试解决办法:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
解决无法定位软件包第1步
② sudo apt update
解决无法定位软件包第2步
③ sudo apt install libjasper1 libjasper-dev
解决无法定位软件包第3步
④ 然后再尝试安装,apt install libjasper-dev
再次尝试执行 libjapser-dev
libjasper-dev 安装完成,继续安装其他的依赖

apt install ffmpeg
apt install ffmpeg

六、下载 OpenCV

下载 wget https://github.com/opencv/opencv/archive/3.4.0.zip,(3.4.0 版,我看好多人都用的这个,我也用这个)
下载 opencv
下载 wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip
下载 opencv_contrib
如果下载不下来,尝试使用迅雷下载文件,下载完成后,复制粘贴到虚拟机中

重命名刚下载的两个文件(3.4.0.zip 是第一个下载的,3.4.0.zip.1 是第二个下载的)
重命名刚下载的两个文件

七、解压 OpenCV

解压 opencv-3.4.0.zip 到 home 目录
解压 opencv-3.4.0.zip 到 home 目录
解压 opencv_contrib-3.4.0.zip 到 home 目录
解压 opencv_contrib-3.4.0.zip 到 home 目录
查看 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 的文件
编译 display_image
上面的 cat.jpg 是我提前准备的一张图片,用于显示

⑨ 执行命令,显示猫片
./display_image cat.jpg
使用 opencv 显示猫片
O**K,这猫我先撸为敬

十、可能遇到的问题

问题 1:Falied to load module “canberra-gtk-module”
Falied to load module "canberra-gtk-module"
解决办法:
apt install libcanberra-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

还不行,关闭当前终端,重新打开一个终端试试
还不行,重启虚拟机试试

祝你好运,祝地球好运…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值