zoukankan      html  css  js  c++  java
  • OpenCV :imread崩溃(4.5.2)

    海康GigE相机的SDK二次开发、公司的算法SDK识别图片,各自都做了单元测试。
    导入算法SDK后,编译正常,但在运行时出现segment fault。

    gdb定位到问题出现在libjpeg.so.8上,使用堆栈的内存地址查不到出错位置的符号。
    借了一下算法SDK的源码,只有一句imread……

    编译通过,应该在链接时可以找到符号,但是运行出错,可能链接的位置不对。
    见这张图(出处不明,侵删):

    看到一篇文章,OpenCV发行版在调用这个jpeg时,与系统库的版本不太一样。
    链接:https://www.cnblogs.com/cheungxiongwei/p/8383605.html
    想了想,在编译OpenCV时,有选项BUILD_JPEG。找到源码目录(opencv-master/3rdparty/libjpeg),查看change.log,发现已经是9d版本(12-Jan-2020)。

    于是试试看,在CMake里面加上了BUILD_JPEG,重新编译,居然可以正常运行了……
    很奇怪的是此时用nm看libopencv_imgproc.so,指向的jpeg还是系统库里的libjpeg.so.8。

    此处的未解之谜mark一下!如果有缘看到的小伙伴,请不吝赐教哈~

    ————————————————————————————————————————
    2021.10.26

    追踪OpenCV源码,看到imread处理图片在imgproc模块下,通过文件检索图片格式,根据格式的readHeader()进行解码,怀疑是在这里崩溃。

  • 相关阅读:
    ARTS第八周打卡
    ARTS第七周打卡
    ARTS第六周打卡
    ARTS第五周打卡
    ARTS第四周打卡
    ARTS第三周打卡
    ARTS 第二周
    uniapp——头部导航栏配置
    码云、Git使用教程
    超出文本宽度点点显示——css
  • 原文地址:https://www.cnblogs.com/zhunix/p/15459976.html
Copyright © 2011-2022 走看看