前言
很多人经常会问我是否有在Ubuntu系统化下开发OpenCV C 应用的教程,其实我一直没有,然后我有几块开发板都是基于Linux的,有Jetson系列的开发板,所以我以前写过一篇文章如何在Jetson开发板上编译OpenCV源码与编译运行OpenCV C 应用程序。我现在还有一块Alxboard开发板是英特尔家族的,安装的是操作系统是Ubuntu20的系统,本身没有自带OpenCV C 支持,所以就用这个开发板给大家演示一下如何在乌班图系统下编译OpenCV4.8源码与如何编译执行OpenCV C 应用。
OpenCV4.8源码编译与安装
其实很简单,只要三步即可搞定,第一步是下载指定版本的源码包;第二步是安装OpenCV4.8编译需要的编译器与第三方库支持;第三步就是编译OpenCV源码包生成安装文件并安装。
01
下载OpenCV4.8源码包
在Ubuntu系统化下打开终端命令行窗口,执行下面的命令行即可
代码语言:javascript复制wget -o opencv4.8.zip https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip
下载完成以后
代码语言:javascript复制unzip -d opencv4.8 opencv4.8.zip
02
安装第三方库支持
直接执行下面的命令行即可
代码语言:javascript复制sudo apt install -y g cmake make git libgtk2.0-dev pkg-config
03
创建Build目录执行编译与安装
首先运行
代码语言:javascript复制cd opencv4.8
mkdir -p build && cd build
执行完成以后直接运行下面的命令行:
代码语言:javascript复制cmake ../opencv
在执行该命令行生成安装文件
代码语言:javascript复制make -j4
使用下面的命令行完成安装
代码语言:javascript复制sudo make install
C 代码测试
运行一个简单的OpenCV图像显示的程序验证OpenCV4.8 C 开发环境的正确性。重新打开一个终端命令行窗口,运行下面的命令行:
代码语言:javascript复制mkdir opencv480_test
nano CMakeLists.txt
然后把下面的脚本粘贴进去
代码语言:javascript复制cmake_minimum_required(VERSION 2.8)
project( OpenCV480_Test )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( OpenCV480_Test helloworld.cpp )
target_link_libraries( OpenCV480_Test ${OpenCV_LIBS} )
按Ctrl X退出,选择y保存
然后继续运行
代码语言:javascript复制nano helloworld.cpp
把下面的代码粘贴进去,保存以后退出。
代码语言:javascript复制#include <opencv2/opencv.hpp>
#include <stdio.h>
using namespace cv;
int main(int argc, char** argv)
{
Mat image = imread("lena.jpg");
if (image.empty()) {
printf("No image data n");
return -1;
}
namedWindow("OpenCV480_Test", WINDOW_AUTOSIZE);
imshow("OpenCV480_Test", image);
waitKey(0);
return 0;
}
执行下面的命令
代码语言:javascript复制cmake .
成功以后执行
代码语言:javascript复制make
然后执行
代码语言:javascript复制./ OpenCV480_Test
显示如下: