Qt4和Qt5:如何解决由功能viz :: WCloud

时间:2019-04-11 12:37:49

标签: c++ opencv qt5 qt4 dji-sdk

在我的程序C ++ opencv中,我在jetson TX2上使用了几种处理方法(整流,stereoBM ...)

我准确地将SKD-DJI unprojectPtCloud函数用于非投影3D点云,但是发生了分割错误

  1. 首先,我通过将dernier行添加到注释中来将此功能添加到functions.cpp的文件中(无需从main ()调用unprojet函数)
void Disparity_filter::unprojectPtCloud(std::shared_ptr<Frame> framel)
{
  // due to rectification, the image boarder are blank
  // we cut them out
  const int border_size = num_disp_;
  const int trunc_img_width_end = HEIGHT - border_size;
  const int trunc_img_height_end = WIDTH - border_size;

    cv::Mat_<cv::Vec3f> mat_vec3_pt_ = cv::Mat_<cv::Vec3f>(HEIGHT, WIDTH, cv::Vec3f(0, 0, 0));
    cv::Mat  color_mat_(HEIGHT, WIDTH, CV_8UC1, &color_buffer_[0])  ;
  for(int v = border_size; v < trunc_img_height_end; ++v)
  {
    for(int u = border_size; u < trunc_img_width_end; ++u)
    {
      cv::Vec3f &point = mat_vec3_pt_.at<cv::Vec3f>(v, u);

#ifdef USE_OPEN_CV_CONTRIB
      float disparity = (float)(framel->raw_disparity_map_.at<short int>(v, u)*0.0625);
#else
      float disparity = (float)(framel->raw_disparity_map_.at<short int>(v, u)*0.0625);
#endif

      // do not consider pts that are farther than 8.6m, i.e. disparity < 6
      if(disparity >= 6)
      {
        point[2] = baseline_x_fx_/disparity;
        point[0] = (u-principal_x_)*point[2]/fx_;
        point[1] = (v-principal_y_)*point[2]/fy_;
      }
      color_buffer_[v*WIDTH+u] = framel->cpu_crop_left.at<uint8_t>(v, u);
    }
  }

  color_mat_ = cv::Mat(HEIGHT, WIDTH, CV_8UC1, &color_buffer_[0]).clone();

    //cv::viz::WCloud pt_cloud_ = cv::viz::WCloud(mat_vec3_pt_, color_mat_); // this line commented in 1. and remouved the // in 2. 
}

我对其进行编译,然后运行并运行

ldd可执行文件,我找到了这些库:

nvidia@tegra-ubuntu:~version_04 /build$ ldd stereo_vision 
    linux-vdso.so.1 =>  (0x0000007fa62ab000)
    libopencv_cudastereo.so.3.4 => /usr/local/lib/libopencv_cudastereo.so.3.4 (0x0000007fa60bd000)
    libopencv_cudawarping.so.3.4 => /usr/local/lib/libopencv_cudawarping.so.3.4 (0x0000007fa59f3000)
    libopencv_ximgproc.so.3.4 => /usr/local/lib/libopencv_ximgproc.so.3.4 (0x0000007fa57d5000)
    libsystemd.so.0 => /lib/aarch64-linux-gnu/libsystemd.so.0 (0x0000007fa572b000)
    libopencv_cudaimgproc.so.3.4 => /usr/local/lib/libopencv_cudaimgproc.so.3.4 (0x0000007fa525b000)
    libopencv_calib3d.so.3.4 => /usr/local/lib/libopencv_calib3d.so.3.4 (0x0000007fa511d000)
    libopencv_highgui.so.3.4 => /usr/local/lib/libopencv_highgui.so.3.4 (0x0000007fa50c3000)
    libopencv_videoio.so.3.4 => /usr/local/lib/libopencv_videoio.so.3.4 (0x0000007fa507f000)
    libopencv_imgproc.so.3.4 => /usr/local/lib/libopencv_imgproc.so.3.4 (0x0000007fa4c8d000)
    libopencv_core.so.3.4 => /usr/local/lib/libopencv_core.so.3.4 (0x0000007fa47b5000)
    libstdc++.so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007fa4626000)
    libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007fa4605000)
    libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007fa45d8000)
    libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007fa4491000)
    /lib/ld-linux-aarch64.so.1 (0x000000555f7c8000)
    libcudart.so.9.0 => /usr/local/cuda-9.0/lib64/libcudart.so.9.0 (0x0000007fa442c000)
    libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007fa437e000)
    libnppc.so.9.0 => /usr/local/cuda-9.0/lib64/libnppc.so.9.0 (0x0000007fa4304000)
    libnppig.so.9.0 => /usr/local/cuda-9.0/lib64/libnppig.so.9.0 (0x0000007fa265f000)
    libopencv_imgcodecs.so.3.4 => /usr/local/lib/libopencv_imgcodecs.so.3.4 (0x0000007fa24c9000)
    libtbb.so => /usr/local/lib/libtbb.so (0x0000007fa2485000)
    libselinux.so.1 => /lib/aarch64-linux-gnu/libselinux.so.1 (0x0000007fa2457000)
    librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007fa2440000)
    liblzma.so.5 => /lib/aarch64-linux-gnu/liblzma.so.5 (0x0000007fa2413000)
    libgcrypt.so.20 => /lib/aarch64-linux-gnu/libgcrypt.so.20 (0x0000007fa2378000)
    libopencv_cudafilters.so.3.4 => /usr/local/lib/libopencv_cudafilters.so.3.4 (0x0000007f9ee89000)
    libnppial.so.9.0 => /usr/local/cuda-9.0/lib64/libnppial.so.9.0 (0x0000007f9e406000)
    libnppicc.so.9.0 => /usr/local/cuda-9.0/lib64/libnppicc.so.9.0 (0x0000007f9dfbc000)
    libnppidei.so.9.0 => /usr/local/cuda-9.0/lib64/libnppidei.so.9.0 (0x0000007f9d7f4000)
    libnppist.so.9.0 => /usr/local/cuda-9.0/lib64/libnppist.so.9.0 (0x0000007f9c804000)
    libnpps.so.9.0 => /usr/local/cuda-9.0/lib64/libnpps.so.9.0 (0x0000007f9be63000)
    libopencv_cudaarithm.so.3.4 => /usr/local/lib/libopencv_cudaarithm.so.3.4 (0x0000007f9a528000)
    libopencv_flann.so.3.4 => /usr/local/lib/libopencv_flann.so.3.4 (0x0000007f9a4c5000)
    libgomp.so.1 => /usr/lib/aarch64-linux-gnu/libgomp.so.1 (0x0000007f9a497000)
    libGL.so.1 => /usr/lib/aarch64-linux-gnu/tegra/libGL.so.1 (0x0000007f9a397000)
    libQt5Test.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Test.so.5 (0x0000007f9a351000)
    libQt5OpenGL.so.5 => /usr/lib/aarch64-linux-gnu/libQt5OpenGL.so.5 (0x0000007f9a2ee000)
    libQt5Widgets.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000007f99d28000)
    libQt5Gui.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000007f998ad000)
    libQt5Core.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000007f993e7000)
    libgstreamer-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0 (0x0000007f992c7000)
    libgobject-2.0.so.0 => /usr/lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000007f9926a000)
    libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000007f99163000)
    libgstapp-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstapp-1.0.so.0 (0x0000007f99147000)
    libgstriff-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstriff-1.0.so.0 (0x0000007f99129000)
    libgstpbutils-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstpbutils-1.0.so.0 (0x0000007f990e7000)
    libv4l1.so.0 => /usr/lib/aarch64-linux-gnu/libv4l1.so.0 (0x0000007f990d1000)
    libv4l2.so.0 => /usr/lib/aarch64-linux-gnu/libv4l2.so.0 (0x0000007f990b3000)
    libavcodec-ffmpeg.so.56 => /usr/lib/aarch64-linux-gnu/libavcodec-ffmpeg.so.56 (0x0000007f980e5000)
    libavformat-ffmpeg.so.56 => /usr/lib/aarch64-linux-gnu/libavformat-ffmpeg.so.56 (0x0000007f97f06000)
    libavutil-ffmpeg.so.54 => /usr/lib/aarch64-linux-gnu/libavutil-ffmpeg.so.54 (0x0000007f97e93000)
    libswscale-ffmpeg.so.3 => /usr/lib/aarch64-linux-gnu/libswscale-ffmpeg.so.3 (0x0000007f97e22000)
    libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f97e0f000)
    libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007f97de7000)
    libjpeg.so.8 => /usr/lib/aarch64-linux-gnu/libjpeg.so.8 (0x0000007f97da1000)
    libpng12.so.0 => /lib/aarch64-linux-gnu/libpng12.so.0 (0x0000007f97d71000)
    libtiff.so.5 => /usr/lib/aarch64-linux-gnu/libtiff.so.5 (0x0000007f97cf9000)
    libjasper.so.1 => /usr/lib/aarch64-linux-gnu/libjasper.so.1 (0x0000007f97c9c000)
    libpcre.so.3 => /lib/aarch64-linux-gnu/libpcre.so.3 (0x0000007f97c2a000)
    libgpg-error.so.0 => /lib/aarch64-linux-gnu/libgpg-error.so.0 (0x0000007f97c09000)
    libnppif.so.9.0 => /usr/local/cuda-9.0/lib64/libnppif.so.9.0 (0x0000007f940ad000)
    libnppim.so.9.0 => /usr/local/cuda-9.0/lib64/libnppim.so.9.0 (0x0000007f93b76000)
    libnppitc.so.9.0 => /usr/local/cuda-9.0/lib64/libnppitc.so.9.0 (0x0000007f9387e000)
    libcublas.so.9.0 => /usr/local/cuda-9.0/lib64/libcublas.so.9.0 (0x0000007f91a4d000)
    libcufft.so.9.0 => /usr/local/cuda-9.0/lib64/libcufft.so.9.0 (0x0000007f8a973000)
    libGLX.so.0 => /usr/lib/aarch64-linux-gnu/tegra/libGLX.so.0 (0x0000007f8a930000)
    libGLdispatch.so.0 => /usr/lib/aarch64-linux-gnu/tegra/libGLdispatch.so.0 (0x0000007f8a804000)
    libX11.so.6 => /usr/lib/aarch64-linux-gnu/libX11.so.6 (0x0000007f8a6db000)
    libharfbuzz.so.0 => /usr/lib/aarch64-linux-gnu/libharfbuzz.so.0 (0x0000007f8a678000)
    libicui18n.so.55 => /usr/lib/aarch64-linux-gnu/libicui18n.so.55 (0x0000007f8a40a000)
    libicuuc.so.55 => /usr/lib/aarch64-linux-gnu/libicuuc.so.55 (0x0000007f8a26c000)
    libpcre16.so.3 => /usr/lib/aarch64-linux-gnu/libpcre16.so.3 (0x0000007f8a206000)
    libgmodule-2.0.so.0 => /usr/lib/aarch64-linux-gnu/libgmodule-2.0.so.0 (0x0000007f8a1f2000)
    libffi.so.6 => /usr/lib/aarch64-linux-gnu/libffi.so.6 (0x0000007f8a1d9000)
    libgstbase-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstbase-1.0.so.0 (0x0000007f8a172000)
    libgstaudio-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstaudio-1.0.so.0 (0x0000007f8a10c000)
    libgsttag-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgsttag-1.0.so.0 (0x0000007f8a0c5000)
    libgstvideo-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libgstvideo-1.0.so.0 (0x0000007f8a043000)
    libv4lconvert.so.0 => /usr/lib/aarch64-linux-gnu/libv4lconvert.so.0 (0x0000007f89fbd000)
    libswresample-ffmpeg.so.1 => /usr/lib/aarch64-linux-gnu/libswresample-ffmpeg.so.1 (0x0000007f89f99000)
    libva.so.1 => /usr/lib/aarch64-linux-gnu/libva.so.1 (0x0000007f89f6f000)
    libzvbi.so.0 => /usr/lib/aarch64-linux-gnu/libzvbi.so.0 (0x0000007f89ee0000)
    libxvidcore.so.4 => /usr/lib/aarch64-linux-gnu/libxvidcore.so.4 (0x0000007f89df1000)
    libx265.so.79 => /usr/lib/aarch64-linux-gnu/libx265.so.79 (0x0000007f89be8000)
    libx264.so.148 => /usr/lib/aarch64-linux-gnu/libx264.so.148 (0x0000007f89a80000)
    libwebp.so.5 => /usr/lib/aarch64-linux-gnu/libwebp.so.5 (0x0000007f89a24000)
    libwavpack.so.1 => /usr/lib/aarch64-linux-gnu/libwavpack.so.1 (0x0000007f899f0000)
    libvpx.so.3 => /usr/lib/aarch64-linux-gnu/libvpx.so.3 (0x0000007f89883000)
    libvorbisenc.so.2 => /usr/lib/aarch64-linux-gnu/libvorbisenc.so.2 (0x0000007f897d4000)
    libvorbis.so.0 => /usr/lib/aarch64-linux-gnu/libvorbis.so.0 (0x0000007f8979d000)
    libtwolame.so.0 => /usr/lib/aarch64-linux-gnu/libtwolame.so.0 (0x0000007f8976d000)
    libtheoraenc.so.1 => /usr/lib/aarch64-linux-gnu/libtheoraenc.so.1 (0x0000007f8972b000)
    libtheoradec.so.1 => /usr/lib/aarch64-linux-gnu/libtheoradec.so.1 (0x0000007f89706000)
    libspeex.so.1 => /usr/lib/aarch64-linux-gnu/libspeex.so.1 (0x0000007f896e1000)
    libsnappy.so.1 => /usr/lib/aarch64-linux-gnu/libsnappy.so.1 (0x0000007f896c9000)
    libshine.so.3 => /usr/lib/aarch64-linux-gnu/libshine.so.3 (0x0000007f896ac000)
    libschroedinger-1.0.so.0 => /usr/lib/aarch64-linux-gnu/libschroedinger-1.0.so.0 (0x0000007f895d6000)
    libopus.so.0 => /usr/lib/aarch64-linux-gnu/libopus.so.0 (0x0000007f89589000)
    libopenjpeg.so.5 => /usr/lib/aarch64-linux-gnu/libopenjpeg.so.5 (0x0000007f89559000)
    libmp3lame.so.0 => /usr/lib/aarch64-linux-gnu/libmp3lame.so.0 (0x0000007f894e0000)
    libgsm.so.1 => /usr/lib/aarch64-linux-gnu/libgsm.so.1 (0x0000007f894c6000)
    libssh-gcrypt.so.4 => /usr/lib/aarch64-linux-gnu/libssh-gcrypt.so.4 (0x0000007f89478000)
    librtmp.so.1 => /usr/lib/aarch64-linux-gnu/librtmp.so.1 (0x0000007f8944e000)
    libmodplug.so.1 => /usr/lib/aarch64-linux-gnu/libmodplug.so.1 (0x0000007f892bc000)
    libgme.so.0 => /usr/lib/aarch64-linux-gnu/libgme.so.0 (0x0000007f89264000)
    libbluray.so.1 => /usr/lib/aarch64-linux-gnu/libbluray.so.1 (0x0000007f89215000)
    libgnutls.so.30 => /usr/lib/aarch64-linux-gnu/libgnutls.so.30 (0x0000007f890ef000)
    libbz2.so.1.0 => /lib/aarch64-linux-gnu/libbz2.so.1.0 (0x0000007f890cf000)
    libjbig.so.0 => /usr/lib/aarch64-linux-gnu/libjbig.so.0 (0x0000007f890b1000)
    libXext.so.6 => /usr/lib/aarch64-linux-gnu/libXext.so.6 (0x0000007f89091000)
    libxcb.so.1 => /usr/lib/aarch64-linux-gnu/libxcb.so.1 (0x0000007f89065000)
    libfreetype.so.6 => /usr/lib/aarch64-linux-gnu/libfreetype.so.6 (0x0000007f88fc8000)
    libgraphite2.so.3 => /usr/lib/aarch64-linux-gnu/libgraphite2.so.3 (0x0000007f88f9b000)
    libicudata.so.55 => /usr/lib/aarch64-linux-gnu/libicudata.so.55 (0x0000007f876d3000)
    liborc-0.4.so.0 => /usr/lib/aarch64-linux-gnu/liborc-0.4.so.0 (0x0000007f87658000)
    libsoxr.so.0 => /usr/lib/aarch64-linux-gnu/libsoxr.so.0 (0x0000007f875f4000)
    libnuma.so.1 => /usr/lib/aarch64-linux-gnu/libnuma.so.1 (0x0000007f875d6000)
    libogg.so.0 => /usr/lib/aarch64-linux-gnu/libogg.so.0 (0x0000007f875be000)
    libgssapi_krb5.so.2 => /usr/lib/aarch64-linux-gnu/libgssapi_krb5.so.2 (0x0000007f8756f000)
    libhogweed.so.4 => /usr/lib/aarch64-linux-gnu/libhogweed.so.4 (0x0000007f8752e000)
    libnettle.so.6 => /usr/lib/aarch64-linux-gnu/libnettle.so.6 (0x0000007f874ee000)
    libgmp.so.10 => /usr/lib/aarch64-linux-gnu/libgmp.so.10 (0x0000007f87470000)
    libxml2.so.2 => /usr/lib/aarch64-linux-gnu/libxml2.so.2 (0x0000007f872db000)
    libfontconfig.so.1 => /usr/lib/aarch64-linux-gnu/libfontconfig.so.1 (0x0000007f8728e000)
    libp11-kit.so.0 => /usr/lib/aarch64-linux-gnu/libp11-kit.so.0 (0x0000007f87223000)
    libidn.so.11 => /usr/lib/aarch64-linux-gnu/libidn.so.11 (0x0000007f871e0000)
    libtasn1.so.6 => /usr/lib/aarch64-linux-gnu/libtasn1.so.6 (0x0000007f871bf000)
    libXau.so.6 => /usr/lib/aarch64-linux-gnu/libXau.so.6 (0x0000007f871ab000)
    libXdmcp.so.6 => /usr/lib/aarch64-linux-gnu/libXdmcp.so.6 (0x0000007f87196000)
    libkrb5.so.3 => /usr/lib/aarch64-linux-gnu/libkrb5.so.3 (0x0000007f870cd000)
    libk5crypto.so.3 => /usr/lib/aarch64-linux-gnu/libk5crypto.so.3 (0x0000007f87091000)
    libcom_err.so.2 => /lib/aarch64-linux-gnu/libcom_err.so.2 (0x0000007f8707d000)
    libkrb5support.so.0 => /usr/lib/aarch64-linux-gnu/libkrb5support.so.0 (0x0000007f87063000)
    libexpat.so.1 => /lib/aarch64-linux-gnu/libexpat.so.1 (0x0000007f8702e000)
    libkeyutils.so.1 => /lib/aarch64-linux-gnu/libkeyutils.so.1 (0x0000007f8701a000)
    libresolv.so.2 => /lib/aarch64-linux-gnu/libresolv.so.2 (0x0000007f86ff4000)

和Qt库的是:

nvidia@tegra-ubuntu:~/version_04/build$ ldd stereo_vision | grep libQ
    libQt5Test.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Test.so.5 (0x0000007f855c6000)
    libQt5OpenGL.so.5 => /usr/lib/aarch64-linux-gnu/libQt5OpenGL.so.5 (0x0000007f85563000)
    libQt5Widgets.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000007f84f9d000)
    libQt5Gui.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000007f84b22000)
    libQt5Core.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000007f8465c000)
  1. 我删除了注释,并重新编译了程序,他没有报告错误,也没有警告!

当我运行可执行文件时。它因分段错误而停止(没有显示我在main()

中放入的调试消息

gdb是可执行文件,它显示了关于libQtGui.so.4的错误,因此我删除了libqt4,然后重新安装了它。

我必须重试,现在它在这里显示了分段错误:

nvidia@tegra-ubuntu:~version_04 /build$ gdb stereo_vision 
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "aarch64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from stereo_vision...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/nvidia/stage/version_04_04_dji /build/stereo_vision 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000007f99ca57b0 in QBasicAtomicInt::ref (this=<optimized out>)
    at ../../include/QtCore/../../src/corelib/arch/qatomic_aarch64.h:116
116    ../../include/QtCore/../../src/corelib/arch/qatomic_aarch64.h: No such file or directory.
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) Quit

在加载链接库时,我发现ex与Qt4和Qt5链接:

nvidia@tegra-ubuntu:~/version_04 /build$ ldd stereo_vision |grep libQt
    libQt5Test.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Test.so.5 (0x0000007f75345000)
    libQt5OpenGL.so.5 => /usr/lib/aarch64-linux-gnu/libQt5OpenGL.so.5 (0x0000007f752e3000)
    libQt5Widgets.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5 (0x0000007f74d1c000)
    libQt5Gui.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Gui.so.5 (0x0000007f748a1000)
    libQt5Core.so.5 => /usr/lib/aarch64-linux-gnu/libQt5Core.so.5 (0x0000007f743dc000)
    libQtGui.so.4 => /usr/lib/aarch64-linux-gnu/libQtGui.so.4 (0x0000007f64c37000)
    libQtCore.so.4 => /usr/lib/aarch64-linux-gnu/libQtCore.so.4 (0x0000007f6493a000)

我不能解决问题..

添加这行代码是否正常,该程序将与Qt4和Qt5链接,而无需从main()调用unproject函数?

如何使用cv :: viz :: WCloud?

0 个答案:

没有答案