Ubuntu18.04下Opencv的安装以及使用

文章目录

前言

我们将学习Ubuntu18.04系统下Opencv的安装以及一些使用。

一、Opencv的安装

因为Opencv的使用以及学习需要桌面版本的Ubuntu,如果已经安装可跳过此步骤,如果是Server版本需要下载桌面组件。

sudo apt-get update
sudo apt-get install ubuntu-desktop
sudo reboot

安装网址:https://opencv.org/releases/
1、 在Ubuntu18.04中网页打开该网站。下载的话建议下载次新版本,相对稳定,网上资料较多。点击 Sources 下载。

Ubuntu18.04下Opencv的安装以及使用
2、 ctrl+alt+T进入终端,安装相应的依赖环境
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libjasper-dev libdc1394-22-dev

3、 将下载的安装包复制一份到home目录下,方便接下来的操作。将下载的压缩包解压

unzip opencv-4.5.5.zip

4、 进入解压后的文件,并在该目录下新建一个build文件夹

cd opencv-4.5.5
mkdir build

Ubuntu18.04下Opencv的安装以及使用
5、 进入build路径下 cmake
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

CMAKE_INSTALL_PREFIX: opencv的安装路径,是安装在/usr/local下的。
CMAKE_BUILD_TYPE: opencv的安装版本,这里默认安装Release。

Ubuntu18.04下Opencv的安装以及使用
6、 在build目录下 make
sudo make -j2

Ubuntu18.04下Opencv的安装以及使用
7、 在改目录下安装
sudo make install

8、 将opencv的库添加到系统路径,配置ld.so.conf文件

sudo vim /etc/ld.so.conf

include /usr/local/lib
并执行 sudo ldconfig

Ubuntu18.04下Opencv的安装以及使用
9、 配置系统bash
sudo vim /etc/bash.bashrc

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

source /etc/bash.bashrc

10、 安装完成!

二、Ubuntu18.04下opencv的应用实例

1、图片的显示

1、 在目录下创建一个 code文件夹并进入该目录

mkdir code
cd code

2、 在code目录下使用vim编辑器编写一个test.cpp

#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
    CvPoint center;
    double scale = -3;

    IplImage* image = cvLoadImage("lena.jpg");
    argc == 2? cvLoadImage(argv[1]) : 0;

    cvShowImage("Image", image);

    if (!image) return -1;  center = cvPoint(image->width / 2, image->height / 2);
    for (int i = 0;i<image->height;i++)
        for (int j = 0;j<image->width;j++) {
            double dx = (double)(j - center.x) / center.x;
            double dy = (double)(i - center.y) / center.y;
            double weight = exp((dx*dx + dy*dy)*scale);
            uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
            ptr[0] = cvRound(ptr[0] * weight);
            ptr[1] = cvRound(ptr[1] * weight);
            ptr[2] = cvRound(ptr[2] * weight);
        }

    Mat src;Mat dst;
    src = cvarrToMat(image);
    cv::imwrite("test.png", src);

    cvNamedWindow("test",1);    imshow("test", src);
     cvWaitKey();
     return 0;
}

Ubuntu18.04下Opencv的安装以及使用
3、 执行以下命令
g++ test.cpp -o test pkg-config --cflags --libs opencv

Ubuntu18.04下Opencv的安装以及使用
4、 执行以下命令
./test

Ubuntu18.04下Opencv的安装以及使用
可以看到图片已经特效展示

2、摄像头的的使用

(1)获取摄像头的权限

  • 在windows系统下 win+r,输入services.msc,找到VMware USB Arbitration S……服务,启动服务。
  • 在虚拟机中点开设置,将USB控制器的”USB兼容性”设置为usb3.0
    -虚拟机中选择”可移动设备”,再选”Quanta USB2.0 VGA UVC WebCam”,最后点击连接即可。

(2)摄像头调用录制视频

1、 创建一个.cpp文件,输入代码

#include<iostream>
#include <opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;

int main()
{

    VideoCapture cap(0);
    if (!cap.isOpened())
    {
        cout << "error" << endl;
        waitKey(0);
        return 0;
    }

    int w = static_cast<int>(cap.get(CV_CAP_PROP_FRAME_WIDTH));
    int h = static_cast<int>(cap.get(CV_CAP_PROP_FRAME_HEIGHT));
    Size videoSize(w, h);
    VideoWriter writer("RecordVideo.avi", CV_FOURCC('M', 'J', 'P', 'G'), 25, videoSize);

    Mat frame;
    int key;
    char startOrStop = 1;
    char flag = 0;

    while (1)
    {
        cap >> frame;
        key = waitKey(100);
        if (key == 32)
        {
            startOrStop = 1 - startOrStop;
            if (startOrStop == 0)
            {
                flag = 1;
            }
        }
        if (key == 27)
        {
            break;
        }

        if (startOrStop == 0 && flag==1)
        {
            writer << frame;
            cout << "recording" << endl;
        }
        else if (startOrStop == 1)
        {
            flag = 0;
            cout << "end recording" << endl;

        }
        imshow("picture", frame);
    }
    cap.release();
    writer.release();
    destroyAllWindows();
    return 0;
}

2、 输入以下命令编译生成可执行文件

g++ test.cpp -o test pkg-config --cflags --libs opencv

Ubuntu18.04下Opencv的安装以及使用
可以发现正在使用电脑摄像头拍摄(因为我的摄像头坏了,所以没有拍摄效果)

(3)播放视频

1、 同理,也是需要一个.cpp 文件,将以下代码粘贴上去,编译运行即可。(在文件夹下要有视频)

#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{

    VideoCapture capture("2.mp4");

    while(1){
        Mat frame;
        capture >> frame;
        if(frame.empty())
            break;
        imshow("读取视频帧",frame);
        waitKey(30);
    }
    system("pause");
    return 0;
}

Ubuntu18.04下Opencv的安装以及使用
可以正常播放视频!

三、参考资料

1、 https://blog.csdn.net/ssj925319/article/details/109231145?spm=1001.2014.3001.5501

总结

Opencv是一个很有趣的图像处理的开源库,在此之前也是在windows系统下用过,并没有在ubuntu系统下用过,没想过在ubuntu系统下挺麻烦的。当然,我们觉得麻烦也只是对linux的操作系统不熟悉罢了,毕竟我们都用惯了windows这种图形化的操作系统,希望通过不断的学习获取更大的进步!

Original: https://blog.csdn.net/wer4567/article/details/127033885
Author: 杰456
Title: Ubuntu18.04下Opencv的安装以及使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/701602/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球