我正在尝试将OpenCV链接到darknet目录。我正在使用Nvidia Jetson AGX Xavier(Ubuntu 18.04(。直到最近,OpenCV还是由JetPack安装在/usr/r目录中的。有了这种配置,暗网的实时检测(https://github.com/AlexeyAB/darknet)使用网络摄像头工作。
我不得不重新安装OpenCV,现在它的目录是home/user/OpenCV。由于缺少权限,我无法将其包含在上一个目录中。现在,每次我用命令启动暗网的实时检测
./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0
我收到这个错误日志:
./darknet: error while loading shared libraries: libopencv_highgui.so.3.3: cannot open shared object file: No such file or directory
当我重新编译darknet(cmake,make,install(时,我收到另一条错误消息:
Demo needs OpenCV for webcam images.
所以我认为,OpenCV没有包含在编译中,darknet也没有找到库。我测试了这个选项:
- 在暗网的Makefile中包含OPENCV=1(仔细检查,完全确定这不是故障(
我试图将OpenCV的路径导出到它以前的路径,例如使用export OpenCV_DIR=/usr/share/OpenCV
我尝试链接路径,例如与LD_LIBRARY_path=$LD_LIBRRAY_path:/usr/local/lib或LD_LIBRARY_PATH=$LD_LIBRRAY_PATH:/usr/share
我认为有可能在一些与cmake相关的文件中包含OpenCV路径。CmakeLists.txt文件中的行
set(PThreads_windows_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/pthreads CACHE PATH "Path where pthreads for windows can be located")
endif()
set(Stb_DIR ${CMAKE_CURRENT_LIST_DIR}/3rdparty/stb CACHE PATH "Path where Stb image library can be located")
set(CMAKE_DEBUG_POSTFIX d)
set(CMAKE_THREAD_PREFER_PTHREAD ON)
find_package(Threads REQUIRED)
if(MSVC)
find_package(PThreads_windows REQUIRED)
endif()
if(ENABLE_OPENCV)
if(OpenCV_FOUND)
if(SELECT_OPENCV_MODULES)
我认为我应该在这里或其他地方包含OpenCV的新目录路径。我尝试使用find_package或set_path,但我不确定这是否是输入此选项的正确点。此外,我没有名为finOpencv.cmake.的文件
有人有一个想法吗,我如何"告诉"暗网OpenCV的位置?
如果您需要进一步的信息,我很乐意与您分享。
感谢您的帮助。谢谢
编辑:如果我在CMakeLists.txt中包含Find_Package(OpenCV(并重新编译,我会收到以下输出:
CMake Warning at CMakeLists.txt:96 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed.
编辑:如果我在CMakeLists.txt中包含Find_Package(OpenCV(并重新编译,我会收到这个输出
很好。作为暗网构建目录的下一步:
cmake . -DOpenCV_DIR=/usr/share/OpenCV