Clion远程调试linux下的Opencv程序

文章目录

  • Clion远程调试linux下的Opencv程序
    • 检查linux下是否安装opencv及其版本
    • 配置Clion,实现远程调试Hello world
    • 配置opencv并运行简单程序

Clion远程调试linux下的Opencv程序

环境:Clion2018, Opencv4.1, 树莓派+Ubuntu18.04

检查linux下是否安装opencv及其版本

很多博客都是使用pkg -config -libs opencv,但是有的时候由于之前安装的时候配置不到位,无法获得结果。因此推荐使用sudo find / -iname “*opencv*”,只是简单地查找包含opencv字符的文件。如果出现如下图所示的结果
Clion远程调试linux下的Opencv程序_第1张图片
说明机器上已经安装了opencv,并且可以看到版本是4.1

配置Clion,实现远程调试Hello world

  • 获取linux的IP地址:ifconfig -a
  • 打开Clion新建C++项目
  • 点击CLion:File ->settings
  • 点击Deployment,如下图操作
    Clion远程调试linux下的Opencv程序_第2张图片
  • 点击SFTP,出现如下窗口,输入linux的IP地址
    Clion远程调试linux下的Opencv程序_第3张图片
  • 点击OK以后按照下图所示进行配置,配置完成以后点击ApplyClion远程调试linux下的Opencv程序_第4张图片- 这里一些其他的配置可以参考https://blog.csdn.net/dingtu6125/article/details/102269411
  • 不要关闭settings,点击Toolchains,按照下图进行操作
  • 注意此处如果无法自动检测出来make,c compile等路径,需要以root权限登录。
    Clion远程调试linux下的Opencv程序_第5张图片
  • 一般linux里都已经安装好了cmake,gdb等必要的程序。如果没有安装,可以参考https://blog.csdn.net/q1009020096/article/details/87715273
  • CLion会自动找到cmake,Make,C compile等程序所在的地址,如果没有自动识别出来,可能有以下解决办法。
    • cmake的环境没有配置好,可以参考https://blog.csdn.net/songarpore/article/details/101901766
    • 重装cmake https://blog.csdn.net/q1009020096/article/details/87715273 https://blog.csdn.net/ztmajor/article/details/88535705
    • 针对安装软件时下载速度慢的问题,参考https://blog.csdn.net/ljzdyh/article/details/51073150
  • 配置好以后如图所示:
    Clion远程调试linux下的Opencv程序_第6张图片
  • 配置好环境以后,需要同将代码上传至linux,如图
    Clion远程调试linux下的Opencv程序_第7张图片
  • 注意每次修改了cmakelist以后,都要再次reload
    Clion远程调试linux下的Opencv程序_第8张图片- reload或者同步代码的时候,都会有个进度条如图所示
    Clion远程调试linux下的Opencv程序_第9张图片- 可以在这里修改同步到linux的位置。但是每次重启CLion或者重启linux以后这个同步位置就会改变。不是什么大问题。
    Clion远程调试linux下的Opencv程序_第10张图片
  • 可以在这里设置debug和release模式
    Clion远程调试linux下的Opencv程序_第11张图片- 代码上传完毕,并且cmakelist 加载完毕以后可以看到
    Clion远程调试linux下的Opencv程序_第12张图片
  • 点击上图的绿色小三角,就可以编译运行了
    Clion远程调试linux下的Opencv程序_第13张图片
    Clion远程调试linux下的Opencv程序_第14张图片

配置opencv并运行简单程序

  • 安装opencv(略)
  • 配置cmakelist参考https://blog.csdn.net/qq_42145185/article/details/89631598
  • 注意每次修改cmakelist以后需要大量时间进行reload,因此不要频繁进行修改,最好一次到位。
  • 在笔者运行程序时遇到了这样的bug。一开始以为是自己的camkelist写得有问题,但更大的问题实际上还是环境的配置。(linux上装的是opencv4)。
    Clion远程调试linux下的Opencv程序_第15张图片
  • 解决方法如下:找到linux中OpenCVConfig.cmake的位置(可以用find)。打开这个文件,其中有一行代码是:
    在这里插入图片描述
  • 去掉后面的/include/opencv4,将这代码改为set(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}")。注意最高提前备份这个文件,以防万一。
  • 更改后cmakelist如下:
cmake_minimum_required(VERSION 3.10)
project(counting)

set(CMAKE_CXX_STANDARD 14)
find_package(OpenCV REQUIRED)#找到opencv源
set(OpenCV_INCLUDE_DIRS "${OpenCV_INSTALL_PATH}")
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
#include_directories(/usr/local/share/include)
#link_directories(/usr/local/lib)
LINK_LIBRARIES(${OpenCV_LIBS})

add_executable(counting main.cpp)
target_link_libraries(counting ${OpenCV_LIBS})#添加opencv链接选项
  • main函数如下:
#include 
#include 
using namespace std;
using namespace cv;
int main() {
    cout << "dsdsdsds" << endl;
    Mat img = imread("su.jpg");
    if(img.empty()) return -1;
//    imshow("img", img);
//    waitKey(0);
    img.release();
    return 0;
}
  • 注意:修改camkelist以后,两个设备之间需要很长的时间加载一些文件,需要等到加载完毕以后再编译运行程序。编译结果如下:
    Clion远程调试linux下的Opencv程序_第16张图片

你可能感兴趣的:(Linux,OpenCV)