Linux 环境下使用 OpenCV 显示图片

  • 一、下载虚拟机
  • 二、下载镜像文件(我用的 ubuntu)
  • 三、安装虚拟机
  • 四、打开虚拟机
  • 五、安装 opencv 依赖包
  • 六、下载 OpenCV
  • 七、解压 OpenCV
  • 八、编译安装 opencv
  • 九、测试,使用 OpenCV 显示图片
  • 十、可能遇到的问题


一、下载虚拟机

① 浏览器地址栏输入 https://customerconnect.vmware.com/downloads/#products_atoz

② 下载 Workstation Pro

opencv 局部放大显示 opencv显示图片太大_OpenCV


③ 点击下载

opencv 局部放大显示 opencv显示图片太大_OpenCV_02


④ 想激活?自己想办法

opencv 局部放大显示 opencv显示图片太大_显示图片_03

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

① 浏览器地址栏输入 https://www.ubuntu.com/download/desktop

② 点击下载(随便下载一个版本,最上面的是最新版)

opencv 局部放大显示 opencv显示图片太大_ubuntu_04

三、安装虚拟机

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

四、打开虚拟机

① 找到你 VMware 的安装目录,双击 vmware.exe

opencv 局部放大显示 opencv显示图片太大_OpenCV_05


② 开启虚拟机

opencv 局部放大显示 opencv显示图片太大_OpenCV_06

五、安装 opencv 依赖包

进入 root 权限(需要输入密码,输入第一次启动虚拟机时设置的密码)

sudo su

opencv 局部放大显示 opencv显示图片太大_OpenCV_07


下面的命令,可以一次安装多个(依赖文件名中间用空格隔开就行),我这里是一个一个装的apt install cmake

opencv 局部放大显示 opencv显示图片太大_ubuntu_08


apt install build-essential

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_09


apt install pkg-config

opencv 局部放大显示 opencv显示图片太大_ubuntu_10


apt install libgtk2.0-dev

opencv 局部放大显示 opencv显示图片太大_显示图片_11


apt install libavcodec-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_12


apt install libavformat-dev

opencv 局部放大显示 opencv显示图片太大_OpenCV_13


apt install libswscale-dev

opencv 局部放大显示 opencv显示图片太大_ubuntu_14


apt install libjpeg-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_15


apt install libpng-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_16


apt install libtiff-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_17


apt install libjasper-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_18


问题:安装 libjasper-dev 提示无法定位软件包

尝试解决办法:

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_19


② sudo apt update

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_20


③ sudo apt install libjasper1 libjasper-dev

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_21


④ 然后再尝试安装,apt install libjasper-dev

opencv 局部放大显示 opencv显示图片太大_ubuntu_22


libjasper-dev 安装完成,继续安装其他的依赖apt install ffmpeg

opencv 局部放大显示 opencv显示图片太大_显示图片_23

六、下载 OpenCV

下载 wget https://github.com/opencv/opencv/archive/3.4.0.zip,(3.4.0 版,我看好多人都用的这个,我也用这个)

opencv 局部放大显示 opencv显示图片太大_OpenCV_24


下载 wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip

opencv 局部放大显示 opencv显示图片太大_OpenCV_25


如果下载不下来,尝试使用迅雷下载文件,下载完成后,复制粘贴到虚拟机中重命名刚下载的两个文件(3.4.0.zip 是第一个下载的,3.4.0.zip.1 是第二个下载的)

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_26

七、解压 OpenCV

解压 opencv-3.4.0.zip 到 home 目录

opencv 局部放大显示 opencv显示图片太大_显示图片_27


解压 opencv_contrib-3.4.0.zip 到 home 目录

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_28


查看 home 目录下解压的文件

opencv 局部放大显示 opencv显示图片太大_ubuntu_29

八、编译安装 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 的文件

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_30


上面的 cat.jpg 是我提前准备的一张图片,用于显示⑨ 执行命令,显示猫片

./display_image cat.jpg

opencv 局部放大显示 opencv显示图片太大_opencv 局部放大显示_31


O**K,这猫我先撸为敬

十、可能遇到的问题

问题 1:Falied to load module “canberra-gtk-module”

opencv 局部放大显示 opencv显示图片太大_OpenCV_32


解决办法:

apt install libcanberra-gtk-module

opencv 局部放大显示 opencv显示图片太大_显示图片_33


问题 2:E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)

解决办法:

// 强制解锁
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

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

祝你好运,祝地球好运…