栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

怎样使用OpenCV

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

怎样使用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 ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")

3. 通过vscode entry

OpenCV4.5.1新增微信QRCode解码功能使用步骤与测评 附源码和效果视频微信开源了QRCode解码功能,并可以在OpenCV中使用,本期将介绍使用步骤和效果演示。使用体验:非常适用APP开发者手机端扫码使用......https://mp.weixin.qq.com/s/2GZAJAUPHTXFOKDRv-D21Q

怎样以c/c++ native的方式使用

OpenCV4.5.1新增微信QRCode解码功能使用步骤与测评 附源码和效果视频微信开源了QRCode解码功能,并可以在OpenCV中使用,本期将介绍使用步骤和效果演示。使用体验:非常适用APP开发者手机端扫码使用......https://mp.weixin.qq.com/s/2GZAJAUPHTXFOKDRv-D21Q生成的库的路径:opencv/build/lib

cmakefile

控制链接的具体库,不要使用大而全的${OpenCV_LIBS}

# link your application with OpenCV libraries
#target_link_libraries(opencv_example PRIVATE ${OpenCV_LIBS})
target_link_libraries(opencv_example PRIVATE opencv_wechat_qrcode)
target_link_libraries(opencv_example PRIVATE opencv_highgui)
target_link_libraries(opencv_example PRIVATE opencv_imgproc)
target_link_libraries(opencv_example PRIVATE opencv_imgcodecs)

c文件

不要用大而全的opencv头文件

  //#include
  #include
  #include
  #include
  #include
  #include
  
  using namespace std;
  using namespace cv; 

怎样以java的方式使用

Building OpenCV 4 with Java Support – David Delabassée – DevRel Java Platform Group @ Oraclehttps://delabassee.com/OpenCVJava/

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

To use OpenCV from Java, you need the build/bin/opencv-430.jar jar and the native libraries located in build/lib.

opencv-454.jar and libopencv_java454.so (native lib)
这里自动生成了jni 接口和 wechat qrcode 模型文件在哪里?不需要自己写jni接口 和java接口, 怎么去用?也许最好的方式是自己写jni接口。

怎样在android上使用

Compiling and Using OpenCV on Android from C++ (Without OpenCVManager) | sisikhttps://www.sisik.eu/blog/android/ndk/opencv-without-java

怎样编译生成android上使用的库

Build OpenCV for android · GitHubBuild OpenCV for android. GitHub Gist: instantly share code, notes, and snippets.https://gist.github.com/tzutalin/f07f5633fd599001101006561689062b

cmake ..
-DCMAKE_TOOLCHAIN_FILE=/path/to/ndk/build/cmake/android.toolchain.cmake 
-DANDROID_NDK=/path/to/ndk
-DANDROID_NATIVE_API_LEVEL=android-21
-DBUILD_JAVA=OFF
-DBUILD_ANDROID_EXAMPLES=OFF
-DBUILD_ANDROID_PROJECTS=OFF
-DANDROID_STL=c++_shared
-DBUILD_SHARED_LIBS=ON
-DCMAKE_INSTALL_PREFIX:PATH=/absolute/path/to/opencv/android_build/out
-DANDROID_ABI=arm64-v8a

cmake .. -

DBUILD_opencv_ittnotify=OFF

-DBUILD_ITT=OFF

-DCV_DISABLE_OPTIMIZATION=ON

-DWITH_CUDA=OFF

-DWITH_OPENCL=OFF

-DWITH_OPENCLAMDFFT=OFF

-DWITH_OPENCLAMDBLAS=OFF

-DWITH_VA_INTEL=OFF

-DCPU_baseLINE_DISABLE=ON

-DENABLE_SSE=OFF

-DENABLE_SSE2=OFF

-DBUILD_TESTING=OFF

-DBUILD_PERF_TESTS=OFF

-DBUILD_TESTS=OFF

-DCMAKE_BUILD_TYPE=RELEASE

-DBUILD_EXAMPLES=OFF

-DBUILD_DOCS=OFF

-DBUILD_opencv_apps=OFF

-DBUILD_SHARED_LIBS=OFF

-DOpenCV_STATIC=ON

-DWITH_1394=OFF

-DWITH_ARITH_DEC=OFF

-DWITH_ARITH_ENC=OFF

-DWITH_CUBLAS=OFF

-DWITH_CUFFT=OFF

-DWITH_FFMPEG=OFF

-DWITH_GDAL=OFF

-DWITH_GSTREAMER=OFF

-DWITH_GTK=OFF

-DWITH_HALIDE=OFF

-DWITH_JASPER=OFF

-DWITH_NVCUVID=OFF

-DWITH_OPENEXR=OFF

-DWITH_PROTOBUF=OFF

-DWITH_PTHREADS_PF=OFF

-DWITH_QUIRC=OFF

-DWITH_V4L=OFF

-DWITH_WEBP=OFF

-DBUILD_LIST=core,features2d,flann,imgcodecs,imgproc,stitching

-DANDROID_NDK=/path/to/ndk

-DCMAKE_TOOLCHAIN_FILE=/path/to/ndk/build/cmake/android.toolchain.cmake

-DANDROID_NATIVE_API_LEVEL=android-21

-DBUILD_JAVA=OFF

-DBUILD_ANDROID_EXAMPLES=OFF

-DBUILD_ANDROID_PROJECTS=OFF

-DANDROID_STL=c++_shared

-DBUILD_SHARED_LIBS=ON

-DCMAKE_INSTALL_PREFIX:PATH=/absolute/path/to/opencv/android_build/out

-DANDROID_ABI=arm64-v8a

怎样生成libopencv_java4.so

‘BUILD_FAT_JAVA_LIB’ which specifies that a java wrapper will be created for all OpenCV libraries enabled.

#!/bin/bash

export ANDROID_SDK_ROOT=/home/ws/Android/Sdk
export ANDROID_PLATFORM=android-21

# for java
cmake -DBUILD_FAT_JAVA_LIB=ON
    -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
    -DBUILD_ANDROID_EXAMPLES=OFF
    -DBUILD_ANDROID_PROJECTS=OFF
    -DCMAKE_TOOLCHAIN_FILE=/home/ws/Android/Sdk/ndk/21.2.6472646/build/cmake/android.toolchain.cmake

-DBUILD_LIST=core,features2d,flann,imgcodecs,imgproc,stitching 这个命令是起作用的

OpenCV4.5.1新增微信QRCode解码功能使用步骤与测评 附源码和效果视频微信开源了QRCode解码功能,并可以在OpenCV中使用,本期将介绍使用步骤和效果演示。使用体验:非常适用APP开发者手机端扫码使用......https://mp.weixin.qq.com/s/2GZAJAUPHTXFOKDRv-D21Q

微信二维码引擎OpenCV开源研究 - jsxyhelu - 博客园《微信二维码引擎OpenCV开源研究》一、编译和Test测试 《微信二维码引擎OpenCV开源研究》 opencv_wechat_qrcode的编译需要同时下载opencv(https://githuhttps://www.cnblogs.com/jsxyhelu/p/14390171.html

微信二维码扫描功能移植到Android平台_wang382758656的专栏-程序员宅基地 - 程序员宅基地https://www.cxyzjd.com/article/wang382758656/114762661 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号