ubuntu 安装并使用多个版本的opencv

  • Ubuntu下安装多个版本的opencv,以及切换使用
    注意 ~/.bashrc 中 不能 export LD_LIBRARY_PATH=/usr/local/opencv/3.1.0/lib ,因为这样会直接覆盖调之前的LD_LIBRARY_PATH, 应该修改成 export LD_LIBRARY_PATH="/usr/local/opencv/4.3.0/lib:$LD_LIBRARY_PATH"

  • 安装完成之后搜索 “opencv.pc” ,在我的系统中 “/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc”,
    需要用哪个版本就在opencv.pc中修改

# Package Information for pkg-config

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib/x86_64-linux-gnu
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.2.0
Libs: -L${exec_prefix}/lib/x86_64-linux-gnu -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_datasets -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_video -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_viz -lopencv_surface_matching -lopencv_text -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
Libs.private: -L/usr/lib/x86_64-linux-gnu -lwebp -lgdcmMSFF -lImath -lIlmImf -lIex -lHalf -lIlmThread -L/usr/lib -lgdal -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgthread-2.0 -ldc1394 -lavcodec -lavformat -lavutil -lswscale -lavresample -lgphoto2 -lgphoto2_port -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lhdf5 -lpthread -lsz -ldl -lm -lvtkRenderingOpenGL-6 -lvtkImagingHybrid-6 -lvtkIOImage-6 -lvtkCommonDataModel-6 -lvtkCommonMath-6 -lvtkCommonCore-6 -lvtksys-6 -lvtkCommonMisc-6 -lvtkCommonSystem-6 -lvtkCommonTransforms-6 -lvtkCommonExecutionModel-6 -lvtkDICOMParser-6 -lvtkIOCore-6 -lz -lvtkmetaio-6 -ljpeg -lpng -ltiff -lvtkImagingCore-6 -lvtkRenderingCore-6 -lvtkCommonColor-6 -lvtkFiltersExtraction-6 -lvtkFiltersCore-6 -lvtkFiltersGeneral-6 -lvtkCommonComputationalGeometry-6 -lvtkFiltersStatistics-6 -lvtkImagingFourier-6 -lvtkalglib-6 -lvtkFiltersGeometry-6 -lvtkFiltersSources-6 -lvtkInteractionStyle-6 -lvtkRenderingLOD-6 -lvtkFiltersModeling-6 -lvtkIOPLY-6 -lvtkIOGeometry-6 -lvtkFiltersTexture-6 -lvtkRenderingFreeType-6 -lfreetype -lvtkftgl-6 -lvtkIOExport-6 -lvtkRenderingAnnotation-6 -lvtkImagingColor-6 -lvtkRenderingContext2D-6 -lvtkRenderingGL2PS-6 -lvtkRenderingContextOpenGL-6 -lgl2ps -lvtkRenderingLabel-6 -ltesseract -llept -lrt -ltbb
Cflags: -I${includedir_old} -I${includedir_new}

  • CMakeLists.txt
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(cv2pil)
SET(CMAKE_C_COMPILER g++)
add_definitions(--std=c++11)

set(Torch_DIR /home/ly/Projects/torch_c++/libtorch/share/cmake/Torch)
find_package(Torch REQUIRED)

set(CMAKE_PREFIX_PATH "/usr/local/opencv/4.3.0")
find_package(OpenCV REQUIRED)

message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

include_directories(${OpenCV_INCLUDE_DIRS}
                    )

add_executable(cv2pil cv2pil.cpp)
#target_link_libraries(cv2pil ${OpenCV_LIBS})
target_link_libraries(cv2pil "${TORCH_LIBRARIES}" ${OpenCV_LIBS})
  • libtorch 默认是按照 _GLIBCXX_USE_CXX11_ABI = 0 , 这样会导致与opencv4.3一起编译出现问题,详细参考地址

你可能感兴趣的:(opencv)