Ubuntu 18 & Qt4.5 下安装并使用OpenCv 4.3

Ubuntu18 下源码编译OpenCv4.4 并在Qt中使用

更新包

# Install the newest versions of all packages currently installed
sudo apt-get -y upgrade
# Handles changing dependencies with new versions of packages
sudo apt-get -y dist-upgrade
# Remove packages that are now no longer needed
sudo apt-get -y autoremove

安装OpenCV所需要的依赖

# Build tools:
sudo apt-get install -y build-essential cmake

# GUI (if you want to use GTK instead of Qt, replace 'qt5-default' with 'libgtkglext1-dev' and remove '-DWITH_QT=ON' option in CMake):
sudo apt-get install -y qt5-default libvtk6-dev

# Media I/O:
sudo apt-get install -y zlib1g-dev libjpeg-dev libwebp-dev libpng-dev libtiff5-dev libjasper-dev libopenexr-dev libgdal-dev

# Video I/O:
sudo apt-get install -y libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev yasm libopencore-amrnb-dev libopencore-amrwb-dev libv4l-dev libxine2-dev

# Parallelism and linear algebra libraries:
sudo apt-get install -y libtbb-dev libeigen3-dev

# Python:
sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy

# Java:
sudo apt-get install -y ant default-jdk

# Documentation:
sudo apt-get install -y doxygen

安装OpenCV

mkdir build & cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_EIGEN=ON ..
sudo make	# compile
sudo make install	# install
sudo ldconfig	# load config

Qt项目中配置

CMAKE

在Cmake构建的项目中,需要在CmakeLists.txt中添加find_package 和target_link_libraries,帮助cmake构建时候查找包与库

find_package(OpenCV REQUIRED)

target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})

添加好opencv库的cmake工程文件类似如下:

cmake_minimum_required(VERSION 2.8.12)

project(SongCamera)

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

find_package(Qt5Core REQUIRED)
find_package(OpenCV REQUIRED)

FILE(GLOB SC_FILES "*.cpp" "*.h")

add_executable(${PROJECT_NAME} ${SC_FILES})

target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Qml Qt5::Quick) # 指定lib库的位置
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})

QMAKE

Qmake构建Qt程序更方便, 在构建OpenCV的程序时候需要添加Include的文件夹和库,在这里注意include的路径要包含opencv4那一级.添加库后的.pro文件如下:

#-------------------------------------------------
#
# Project created by QtCreator 2020-10-22T23:07:21
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = EagleEye
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0


SOURCES += 
        main.cpp 
        mainwindow.cpp 
    cvwidget.cpp

HEADERS += 
        mainwindow.h 
    cvwidget.h

FORMS += 
        mainwindow.ui

##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
INCLUDEPATH += /usr/local/include
 /usr/local/include/opencv4/opencv2
 /usr/local/include/opencv4

 LIBS+=/usr/local/lib/libopencv_highgui.so
 /usr/local/lib/libopencv_core.so
 /usr/local/lib/libopencv_imgproc.so
 /usr/local/lib/libopencv_imgcodecs.so
 /usr/local/lib/libopencv_videoio.so

##<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

参考文章

Ubuntu18源码编译OpenCV4.3

原文地址:https://www.cnblogs.com/NoPolar/p/13875499.html