ubuntu 18.04 安装 opecv 4.5.1(无ippicv等下载问题)

安装说明:

服务器配置:

系统:ubuntu18.04

cpu:intel系列

gpu:3090

写这份博客是因为很多次在安装过程中需要手动下载各种资源包,很麻烦,比如:

ippicv 和 face_landmark_model.dat的下载问题

核心思想:

利用opencv的cache文件夹,让opencv认为我们已经下载好了相关文件(确实也已经下载好了,只不过是事先下好的而已)

资源获取:

1、通过github下载 opencv_4.5.1和对应的opencv_contrib_4.5.1

2、下载安装用的cache文件(这里也可以下opencv4.5.1和opencv_contrib_4.5.1):

opencv_451_cache

百度网盘:https://pan.baidu.com/s/1H6kyZ4s1kJWCsVK_6Ugkig

提取码:ropy

安装准备:

1、先把文件上传至服务器指定目录,例如:

/home/enviroment/opencv/

2、个人比较喜欢把opencv装在指定目录,这里新建目录(没有sudo权限可以直接安装在自己的用户目录下):

sudo mkdir /usr/local/opencv451

3、把 opencv_451_cache.zip、opencv-4.5.1.zip 和 opencv_contrib-4.5.1.zip解压至当前目录

4、把解压出的cache文件夹移入opencv-4.5.1内(重命名为.cache)

mv cache opencv-4.5.1/.cache

接下来就是正常的安装流程了:

安装流程

安装依赖

[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

编译

cd opencv-4.5.1
mkdir build
cd build

配置CMake

cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv451 -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.5.1/modules -DBUILD_TIFF=ON -DBUILD_opencv_python3=no -DBUILD_opencv_python2=no -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3  -DBUILD_JAVA=off -DWITH_GTK=ON ..

编译安装(make的时候会比较慢)

make -j8
sudo make install

安装好后代码测试

cmakelist编写

cmake_minimum_required(VERSION 2.8)
project(opencv_test)
set(OpenCV_DIR /usr/local/opencv451/lib/cmake/opencv4)
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(opencv_test main.cpp )
target_link_libraries(opencv_test ${OpenCV_LIBS} )

main函数编写

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: opencv_test.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    rectangle(image, Point(100, 100), Point(300, 300), Scalar(0, 255, 0), 2, 8, 0);
    imwrite("result.jpg", image);
    printf("finish~\n");
    return 0;
}

这样就好了~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值