【deepstream】deepstream调用opencv(c与c++联合编译)

2023-05-16

目的

在deepstream项目中调用opencv库,丰富deepstream功能(如往deepstream加入kalman filter实现跟踪)

操作环境

  • Ubuntu 18.04
  • Qt Creatot 5.14.0
  • qmake 3.1
  • deepstream 5.0
  • opencv 3.4.11

下面以deepstream自带项目deepstream-image-meta-test为例进行说明(步骤中路径相关都要进行替换,如opencv安装位置等,直接复制可能达不到效果!)

操作步骤

  1. 首先复制一份并命名为opencv-deepstream,并在终端进入该目录,文件夹中项目如下图所示:
    项目文件

  2. 为了避免可能产生的影响,可使用make clean清除已有的中间文件及可执行文件,执行后如下图所示:
    项目文件

  3. 修改Makefile文件中部分内容,修改如下:
    修改前:
    修改前

    修改后:
    在这里插入图片描述

  4. 使用qmake -project生成名为opencv-deepstream.pro的qt项目,内容如下图所示:
    opencv-deepstream.pro内容

  5. 为保证后续操作的正常进行,将该文件夹赋予最高权限,依次执行:

    cd ..
    chmod 777 -R opencv-deepstream
    cd opencv-deepstream
    
  6. 修改opencv-deepstream.pro文件,修改成功如下图所示:
    在这里插入图片描述

    • 修改INCLUDEPATH
      INCLUDEPATH += /usr/include/glib-2.0 \
                     /usr/lib/x86_64-linux-gnu/glib-2.0/include \
                     /usr/include/gstreamer-1.0 \
                     ../../../includes \
                     . \
                     /usr/include/opencv \
                     /usr/include/opencv2 \
      
    • 添加DEFINES += QT_DEPRECATED_WARNINGS
    • 添加QMAKE_CXXFLAGS += -std=c++11
    • 添加LIBS
      LIBS += /opt/nvidia/deepstream/deepstream-5.0/lib/libnvdsgst_meta.so \
              /opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_meta.so \
              /opt/nvidia/deepstream/deepstream-5.0/lib/libnvdsgst_helper.so \
      	/opt/nvidia/deepstream/deepstream-5.0/lib/libnvbufsurface.so \
      	/opt/nvidia/deepstream/deepstream-5.0/lib/libnvbufsurftransform.so \
      	/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_batch_jpegenc.so \
              /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so \
              /usr/lib/x86_64-linux-gnu/libglib-2.0.so \
              /usr/lib/x86_64-linux-gnu/libgobject-2.0.so \
              /usr/local/lib/libopencv_core.so \
              /usr/local/lib/libopencv_imgproc.so \
              /usr/local/lib/libopencv_imgcodecs.so \
              /usr/local/lib/libopencv_highgui.so \
      
  7. deepstream_image_meta_test.c中添加测试代码,此处我添加使用opencv读取并显示图片。

    • 添加头文件
      添加头文件
    • 在main函数内添加测试代码(编译器提示报错,不用管)
      测试代码
  8. 在qt中构建项目(Ctrl + B或者左下角“锤子”图标),此时在opencv-deepstream同级目录下生成build-opencv-deepstream-Desktop_Qt_5_14_0_GCC_64bit-Debug文件夹(其中包含一个Makefile文件),并在qt中报大量错,不要慌,继续看下去
    报错信息

  9. build-opencv-deepstream-Desktop_Qt_5_14_0_GCC_64bit-Debug/Makefile进行修改,将下图中$(CC)改为$(CXX)
    代码修改

  10. 再次在QT中进行构建,此时报错减少,如下图所示:
    类型转换报错

  11. 可以看到,4个报错均为类型转换错误,按照提示在相应位置进行强制类型转换后即可解决所有错误。

  12. 再次进行构建项目,此时build-opencv-deepstream-Desktop_Qt_5_14_0_GCC_64bit-Debug下生成可执行文件,如下图所示:
    文件

  13. 在终端执行./opencv-deepstream file:///opt/nvidia/deepstream/deepstream-5.0/samples/streams/sample_720p.mp4,图片正常显示,但仍有报错,根据报错提示(下图),可知缺少相关配置文件,此项即为opencv-deepstream下的ds_image_meta_pgie_config.txt,复制一份到build-opencv-deepstream-Desktop_Qt_5_14_0_GCC_64bit-Debug下再次执行,成功!
    提示

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【deepstream】deepstream调用opencv(c与c++联合编译) 的相关文章

  • 使用 OpenCV 查找重叠/复杂的圆

    我想计算红圈半径 图2 我在使用 OpenCV 的 HoughCircles 找到这些圆圈时遇到了麻烦 如图所示 2 我只能使用 HoughCircles 找到中心以黑色显示的小圆圈 original fig 2 由于我知道红色圆圈的中心
  • cv2.imread:检查图像是否正在被读取

    我正在用 python 编写一个 OpenCV 程序 在某些时候我有类似的东西 import cv2 import numpy as np img cv2 imread myImage jpg do stuff with image her
  • cv2.cv.BoxPoints(rect) 返回什么?

    rect cv2 minAreaRect largest contour rect rect 0 0 self scale down rect 0 1 self scale down rect 1 0 self scale down rec
  • 如何提取图像中的表格

    我想从图像中提取表格 这个 python 模块https pypi org project ExtractTable https pypi org project ExtractTable 与他们的网站https www extractta
  • 编译使用Basler相机的程序

    我正在尝试使用 Basler 相机捕获图像的 C 程序来工作 我拿到 来自制造商的代码 它应该 非常容易使用 但是 链接它有 成为一场噩梦 我的 C 时代已经过去了 最近只使用 Matlab 所以我可能会犯一些愚蠢的错误 但请赐教 代码如下
  • 如何使用requirements.txt 在 Heroku python Web 应用程序中安装 Dlib?

    我构建了一个涉及机器学习的 Python Flask Web API 但在 Heroku 上部署它时遇到了很多挫折 问题是 我的应用程序依赖于 Dlib 一个库 我似乎找不到在我的 Heroku 服务器中安装的方法 我正在试图解决这个问题
  • 使用相位相关和对数极坐标变换获得旋转位移

    我一直在编写一个脚本 它使用 cv2 计算两个图像之间的旋转位移phaseCorrelate method 我有两张图像 第二张是第一张图像的 90 度旋转版本 加载图像后 我将它们转换为对数极坐标 然后将它们传递到phaseCorrela
  • brew 链接 jpeg 问题

    我正在尝试安装opencv在 Mac OSX Lion 上 brew install opencv 我收到以下错误 以及其他一些类似的错误 Error The linking step did not complete successful
  • OpenCV:视频结束后如何重新启动?

    我正在播放视频文件 但播放完毕后如何再次播放 Javier 如果您想一遍又一遍地重新启动视频 也称为循环播放 可以通过在帧数达到时使用 if 语句来实现cap get cv2 cv CV CAP PROP FRAME COUNT 然后重置帧
  • 提高 pytesseract 从图像中正确识别文本的能力

    我正在尝试使用读取验证码pytesseract模块 大多数时候它都能提供准确的文本 但并非总是如此 这是读取图像 操作图像以及从图像中提取文本的代码 import cv2 import numpy as np import pytesser
  • 我是否必须使用我的数据库训练 Viola-Jones 算法才能获得准确的结果?

    我尝试提取面部数据库的面部特征 但我认识到 Viola Jones 算法在两种情况下效果不佳 当我尝试单独检测眼睛时 当我尝试检测嘴巴时 运作不佳 检测图像的不同部分 例如眼睛或嘴巴 或者有时会检测到其中几个 这是不可能的情况 我使用的图像
  • 如何使用 Python 将我的 GoPro Hero 4 相机直播连接到 openCV?

    我在尝试从我的新 GoPro Hero 4 相机捕获实时流并使用 openCV 对其进行一些图像处理时遇到麻烦 这是我的试用 创建的窗口上没有显示任何内容 import cv2 import argparse import time imp
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 无法在 Windows 7 机器中使用 OpenCV 2.4.3、Python 2.7 打开“.mp4”视频文件

    我目前正在进行一个涉及读取 mp4 视频文件的项目 我遇到的问题是它在Windows 7机器上使用Python 2 7 32位 OpenCV 2 4 3 cv2 pyd 代码片段如下 try video cv2 VideoCapture v
  • opencv形态扩张滤波器作为最大滤波器

    就像中值滤波器的定义一样 我可以将 最大滤波器 定义为局部窗口 例如dst x y max 3x3 局部窗口像素 但我在opencv中找不到这样的过滤器 最接近的是 dilate 函数 然后我使用 dilate 函数的默认配置 但结果不正确
  • OpenCV 3 中的 FLANN 错误

    我运行的是 Ubuntu 14 04 我正在尝试使用 openCV 3 运行 FLANN 但出现错误 下面的所有内容都是通过使用 AKAZE 和 ORB 进行尝试的 但代码来自我尝试使用 ORB 的情况 我使用 ORB 来查找描述符和关键点
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • 为什么我无法在 Mac 12.0.1 (Monterey) 上使用 pip 安装 OpenCV? [复制]

    这个问题在这里已经有答案了 当我尝试使用 python pip 安装 OpenCV 时 它显示了以下内容 Remainder of file ignored Requirement already satisfied pip in Libr
  • 从图像坐标获取对象的世界坐标

    I have been following this http docs opencv org modules calib3d doc camera calibration and 3d reconstruction html docume

随机推荐