ubuntu18.04下Qt5.12.11中配置opencv4.2.0
1.opencv的安装
1.1 下载自己所需版本的源码
1.2 安装一些所需的依赖或库
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install cmake
sudo apt-get install build-essential
sudo apt-get install 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 libtiff-dev libjasper-dev libdc1394-22-dev
注意:若最后一条命令报错,“E: unable to locate libjasper-dev",添加该软件APT源到sources.list,具体如下
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
接着重新执行最后一条安装命令即可
1.3 编译opencv源码,解压1.1中下载的源码,并在终端中cd到解压后的目录
sudo mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv ..
若最后一条命令有报错,很大可能是缺少库或依赖,按照报错信息安装即可
make -j4
-j4 根据自己电脑修改,也可不加
sudo make install
该命令运行结束后会在/usr/local/下生成opencv文件夹,里面为编译好的文件
1.4 添加库路径以及配置环境变量
gedit /etc/ld.so.conf.d/opencv.conf
输入/usr/local/opencv/lib (根据自己安装位置位置的库目录更改,1.3中指定) ,保存后退出
sudo ldconfig
sudo gedit /etc/bash.bashrc
末尾加上:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opencv/lib/pkgconfig
export PKG_CONFIG_PATH
更新环境变量
source /etc/bash.bashrc
2.Qt的安装
2.1 Qt的下载,推荐使用国内镜像选择自己需要的版本
- 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
- 清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
2.2 cd到安装包所在位置,以下命令会安装到/home下
./qt-opensource-linux-x64-5.12.11.run
若没有可执行权限,先运行如下命令再安装
sudo chmod +x qt-opensource-linux-x64-5.12.11.run
安装过程中需要登录账户,若没有注册一个即可,组件根据自己需要和硬盘容量选择
2.3 配置环境变量
sudo gedit /etc/bash.bashrc
在末尾加上
export QTDIR=/home/username/Qt5.12.11/5.12.11/gcc_64
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH5_:
注意:将username替换为自己的用户名
更新环境变量
source /etc/bash.bashrc
3.Qt中配置opencv
新建测试项目,在.pro中添加opencv包含文件和库目录
INCLUDEPATH += /usr/local/opencv/include \
/usr/local/opencv/include/opencv4
/usr/local/opencv/include/opencv4/opencv2
LIBS += /usr/local/opencv/lib/libopencv_* \
以上命令添加了所有库文件,也可根据自己需要添加
测试,在main.cpp中尝试读取图片,若能成功读取图片则表示配置成功
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat src;
src = imread("/home/wby/Desktop/test.jpg"); //替换为自己图片的路径
if(src.empty())
{
cout<<"Could not load the image..."<<endl;
}
imshow("Test",src);
waitKey();
return 0;
}
4.Qt中ui设计界面无法输入中文的解决
利用fcitx+搜狗输入法的大多会遇到这种情况
查看fcitx-frontend-qt5 的安装目录
dpkg -L fcitx-frontend-qt5
若没有安装fcitx-frontend-qt5则需要先安装
sudo apt-get install fcitx-frontend-qt5
把/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so复制到Qt的安装路径下
sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /home/username/Qt5.12.11/5.12.11/gcc_64/plugins/platforminputcontexts/
sudo cp /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so /home/username/Qt5.12.11/Tools/QtCreator/bin/plugins/platforminputcontexts/
注意:将username替换为自己的用户名
重启Qt Creator即可解决