怎样使用OpenCV

1. 怎样编译 openCV

如果要使用opencv开发,必须下载源代码然后编译

https://linuxize.com/post/how-to-install-opencv-on-ubuntu-20-04/https://linuxize.com/post/how-to-install-opencv-on-ubuntu-20-04/

在opencv 目录下创建 build 文件夹然后执行cmake command

Set up the OpenCV build with CMake:

cmake -D CMAKE_BUILD_TYPE=RELEASE \    -D CMAKE_INSTALL_PREFIX=/usr/local \    -D INSTALL_C_EXAMPLES=ON \    -D INSTALL_PYTHON_EXAMPLES=ON \    -D OPENCV_GENERATE_PKGCONFIG=ON \    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \    -D BUILD_EXAMPLES=ON ..

  -D 是变量的定义,控制了编译的模块等,上面的 .. 表示上级目录也指明了 cmake file在opencv 目录下的CMakeLists.txt,

执行cmake后输出log是:

--   OpenCV modules:
--     To be built:                 aruco barcode bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dnn_superres dpm face features2d flann freetype fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform java line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot python2 python3 quality rapid reg rgbd saliency shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab wechat_qrcode xfeatures2d ximgproc xobjdetect xphoto
--     Disabled:                    world
--     Disabled by dependency:      -
--     Unavailable:                 alphamat cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf julia matlab ovis sfm viz
--     Applications:                tests perf_tests examples apps
--     Documentation:               NO
--     Non-free algorithms:         NO

怎样控制编译的 modules:

1. cmake -D

如 BUILD_opencv_ml = OFF, 可以通过cmake的输入log: To be built:看是否有mk

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.4 \
      -D OPENCV_ENABLE_NONFREE=ON \
      -D OPENCV_EXTRA_MODULES_PATH=/home/zfb/opencv_contrib-4.4.0/modules \
      -D OPENCV_GENERATE_PKGCONFIG=YES \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D WITH_CUDA=ON \
      -D BUILD_EXAMPLES=ON \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D INSTALL_C_EXAMPLES=ON ..

💡 Building OpenCV takes time, anywhere between 5 minutes and +60 minutes depending on your configuration, the selected OpenCV modules and options, …; so it’s a good idea to first do a minimal build to check that eveything is OK.

To reduce the build time, disable the following entries:

  • BUILD_IPP_IW

  • BUILD_ITT

  • BUILD_OPENEXR

  • BUILD_PERF_TESTS

  • BUILD_TESTS

  • BUILD_TIFF

  • BUILD_WEBP

  • BUILD_opencv_calib3d

  • BUILD_opencv_dnn

  • BUILD_opencv_features2d

  • BUILD_opencv_flann

  • BUILD_opencv_gapi

  • BUILD_opencv_highgui

  • BUILD_opencv_ml

  • BUILD_opencv_objdetect

  • BUILD_opencv_photo

  • BUILD_opencv_python_bindings_generator

  • BUILD_opencv_python_tests

  • BUILD_opencv_stitching

  • BUILD_opencv_ts

  • BUILD_opencv_video

  • BUILD_opencv_videoio

  • VIDEOIO_ENABLE_PLUGINS

  • VIDEOIO_ENABLE_STRICT_PLUGIN_CHECK

The following OpenCV modules are the bare minimum to use OpenCV from Java.

  • BUILD_opencv_core

  • BUILD_opencv_imgcodecs

  • BUILD_opencv_imgproc

  • BUILD_JAVA

  • BUILD_opencv_java

  • BUILD_opencv_java_bindings_gen

2. 直接更改cmakefile中的 To be built 变量

1154 # ==== OpenCV modules ==========================
1171
status("    To be built:"            OPENCV_MODULES_BUILD          THEN ${OPENCV_MODULES_BUILD_ST}          ELSE "-")                                                                                 
1172 status("    Disabled:"               OPENCV_MODULES_DISABLED_USER  THEN ${OPENCV_MODULES_DISABLED_USER_ST}  ELSE "-")
1173 status("    Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO  THEN ${OPENCV_MODULES_DISABLED_AUTO_ST}  ELSE "-")
1174 status("    Unavailable:"            OPENCV_MODULES_DISABLED_FORCE THEN ${

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值