分类 OpenCV 下的文章

“OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行。”

从github下载vcpkg源码包

git clone https://github.com/Microsoft/vcpkg.git

进入源码目录

cd vcpkg

执行./bootstrap-vcpkg.sh

./bootstrap-vcpkg.sh

编译好后,进行安装

./vcpkg integrate install

vcpkg创建软链接

sudo ln -s /home/const/vcpkg/vcpkg /usr/bin

vcpkg用法

vcpkg list

输出:

ade:x64-linux                                      0.1.1f#1         ADE Framework is a graph construction, manipulat...
angle:x64-linux                                    2020-05-15#2     A conformant OpenGL ES implementation for Window...
assimp:x64-linux                                   5.0.1#4          The Open Asset import library
brotli:x64-linux                                   1.0.9#1          a generic-purpose lossless compression algorithm...
bzip2:x64-linux                                    1.0.8#1          bzip2 is a freely available, patent free, high-q...
curl:x64-linux                                     7.74.0#7         A library for transferring data with URLs
curl[non-http]:x64-linux                                            Enables protocols beyond HTTP/HTTPS/HTTP2
curl[openssl]:x64-linux                                             SSL support (OpenSSL)
curl[ssl]:x64-linux                                                 Default SSL backend

vcpkg search 用法

vcpkg search opencv4

输出:

vcpkg search opencv4
opencv4                  4.5.2            computer vision library
opencv4[ade]                              graph api
opencv4[contrib]                          opencv_contrib module
opencv4[cuda]                             CUDA support for opencv
opencv4[dnn]                              Enable dnn module
opencv4[eigen]                            Eigen support for opencv
opencv4[ffmpeg]                           ffmpeg support for opencv
opencv4[gdcm]                             GDCM support for opencv
opencv4[halide]                           Halide support for opencv
opencv4[ipp]                              Enable Intel Integrated Performance Primitives
opencv4[jasper]                           JPEG 2000 support for opencv
opencv4[jpeg]                             JPEG support for opencv
opencv4[lapack]                           LAPACK support for opencv
opencv4[nonfree]                          allow nonfree and unredistributable libraries
opencv4[openexr]                          OpenEXR support for opencv
opencv4[opengl]                           opengl support for opencv
opencv4[openmp]                           Enable openmp support for opencv
opencv4[ovis]                             opencv_ovis module
opencv4[png]                              PNG support for opencv
opencv4[qt]                               Qt GUI support for opencv
opencv4[quirc]                            Enable QR code module
opencv4[sfm]                              opencv_sfm module
opencv4[tbb]                              Enable Intel Threading Building Blocks
opencv4[tiff]                             TIFF support for opencv
opencv4[vtk]                              vtk support for opencv
opencv4[webp]                             WebP support for opencv
opencv4[world]                            Compile to a single package support for opencv

gocv介绍
gocv是OpenCV4在Go中的绑定,使用它可以在Go里做图像处理。
Github: https:/​/github.com/hybridgroup/gocv
opencv介绍
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行。

Ubuntu/Linux安装步骤

go get -u -d gocv.io/x/gocv
cd ~/go/pkg/mod/gocv.io/x/gocv@v0.27.0

编译动态库

sudo make install

编译静态库

sudo make install BUILD_SHARED_LIBS=OFF

验证安装

go run ./cmd/version/main.go

运行结果:

gocv version: 0.27.0
opencv lib version: 4.5.2

代码:

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;
using namespace std;


int main(int argc, char* argv[])
{
    cout<<"OpenCV4 Example."<<endl;
    cout<<"OpenCV Version = "<<getVersionString()<<endl;
    webcam();
    
    return 0;
}

void webcam()
{
    Mat frame;
    VideoCapture cap;
    int deviceID = 0;             // 0 = open default camera
    int apiID = cv::CAP_ANY;      // 0 = autodetect default API
    cap.open(deviceID, apiID);
    if (!cap.isOpened()) {
        cerr << "ERROR! Unable to open camera\n";
        return;
    }
    cout << "Start grabbing" << endl << "Press any key to terminate" << endl;
    for (;;)
    {
        cap.read(frame);
        if (frame.empty()) {
            cerr << "ERROR! blank frame grabbed\n";
            break;
        }
        imshow("Live", frame);
        if (waitKey(40) >= 0)
            break;
    }
}

运行结果:

./opencv-demo 
OpenCV4 Example.
OpenCV Version = 4.5.2
Start grabbing
Press any key to terminate

运行效果:
opencv-webcam-capture.png