首页 > 编程知识 正文

opencv中文手册,opencv怎么使用

时间:2023-05-05 08:44:12 阅读:165223 作者:2635

另一方面,背景官方提供的OpenCV编译包是x64,而且没有集成contrib包中的功能。 平时需要的是x86的OpenCV封装,因为想使用contrib中的滚轮,所以需要自己编译OpenCV。

为什么要使用opencv的c库而不是OpenCV_python,是为了速度和工业上的引进。 OpenCV中的主要加速手段是SIMD、IPP、OpenCL、CUDA、Halide、多线程并行。 由于本人所有的GPU相关功能都无法通过OpenCV实现,编译时OpenCL、CUDA相关功能全部被取消,Halide由于目前没有实现OpenCV,所以会留下SIMD、IPP、多线程。 幸运的是,这三种加速可以重叠使用。 多线程parallel_for_并行后端主要内置于Intel的TBB (需要单独安装)、OpenMP )、仅MSVC方便)、C 11 concurrency )和c11标准中因为平时是基于Linux的,所以就速度来说,TBB是最快的,其他框架本身是一样的。

二、下载相关附件以opencv4.5. 2版为例

(1) opencv-4.5.2-vc14_vc15.exe

)2) opencv_contrib-4.5.2.zip

)3) IPPicv _ 2020 _ win _ Intel 64 _ 2019 10 18 _ general.zip,在此处使用不需要单独安装IPP的IPP icv模式,必须单独下载

)4) 3rd聚会:

1ada (可直接通过互联网下载) )。

2face_landmark_model.dat,需要单独下载

3FFmpeg相关、opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、ffmpeg.cmake (这三个,特别是最后注意) )必须单独下载

4boostdesc相关,boostdesc_bgm.i、boostdesc_bgm_bi.i、boostdesc_bgm_hd.i、boostdesc_axdhbboost_064.i vgg_generated_48.i、vgg_generated_64.i、vgg_generated_80.i和vgg_generater

5wechat_qrcode相关、detect.prototxt、sr.prototxt、detect.caffemodel和sr.caffemodel必须单独下载。

全部下载成功了90%。

如果可以使用CMake编译,将执行以下操作:

ippicv.cmake中的' https://raw.github user content.com/opencv/opencv _ 3rd party/ipicvcommit/ipicv/'更改为' htttps330

s t a t i c d n . n e t / o p e n c v / o p e n c v 3 r d p a r t y / {IPPICV_COMMIT}/ippicv/" 修改为: "https://raw.staticdn.net/opencv/opencv_3rdparty/ IPPICVC​OMMIT/ippicv/"修改为:"https://raw.staticdn.net/opencv/opencv3​rdparty/{IPPICV_COMMIT}/ippicv
以及ffmpeg.cmake、download_boostdesc.cmake、download_vgg.cmake、opencv_contribmodulesfaceCMakeLists.txt、opencv_contribmoduleswechat_qrcodeCMakeLists.txt中的"https://raw.githubusercontent.com/"修改为"https://raw.staticdn.net/"即可。

三、CMake操作

(1)新建要构建生成文件所放置的文件夹,然后在CMake中进行相关操作

(2)然后选择对应的VS的版本和系统版本(要根据自己的硬件架构进行选择:32位(Win32)兼容性好,64位(x64),arm架构的硬件要选arm(Arm64或Arm))。

(3)点击Finish按钮,CMake自动开始编译。
然后得到如下界面:

(4)先安装自己对功能模块的需求,勾选相关选项:
<1>java相关去掉;
<2>python相关去掉;
<3>test相关去掉;
<4>OpenCL和CUDA相关去掉;
<5>勾选OPENCV_ENABLE_NONFREE;
<6>在OPENCV_EXTRA_MODULES_PATH栏选中opencv_contrib对应的文件夹;
<7>勾选IPP相关;
<8>不勾选BUILD_opencv_world,生成各独立DLL文件,便于打包继承。

点击CMake的Configure按钮,让CMake进行相关配置。
(5)配置3大加速
<1>SIMD,默认MSVC编译器+Intel芯片,则OpenCV提供的x86相关SIMD加速,全部自动扫描完成配置,无需手动操作,如果成功会在CMake的信息栏出现以下信息:

<2>IPP,这里使用IPPICV的配置模式,首次点击Configure后,会在编译源文件夹下生成一个.cache文件夹,其下有个ippicv文件夹,是CMake从网上下载缓冲时生成的。需要将之前下载的ippicv_2020_win_intel64_20191018_general.zip,修改为该文件夹下对应的hash码加文件名的命名形式(要一模一样),然后替换掉原来大小为0的下载失败的文件即可,会在下次Configure时,恢复正常。

配置成功后会在CMake的信息栏出现以下信息:

<3>多线程并行框架:使用MSVC>C++11版本,会自动选择配置,配置成功后会在CMake的信息栏出现以下信息:

(6)配置3rdparty
按照前面的IPPICV的先命名后替换的方式,将
face_landmark_model.dat
opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、ffmpeg.cmake
boostdesc_bgm.i、boostdesc_bgm_bi.i、boostdesc_bgm_hd.i、boostdesc_axdhbboost_064.i、boostdesc_axdhbboost_128.i、boostdesc_axdhbboost_256.i、boostdesc_lbgm.i、vgg_generated_48.i、vgg_generated_64.i、vgg_generated_80.i、vgg_generated_120.i
detect.prototxt、sr.prototxt、detect.caffemodel、sr.caffemodel
替换掉在编译源文件夹下.cache文件夹中各对应子文件夹中的大小为0的下载失败的文件即可。
另由于boostdesc相关文件对这种方式可能出现问题(即CMake中上述方式会出现错误信息,且无法解决),将boostdesc_bgm.i、boostdesc_bgm_bi.i、boostdesc_bgm_hd.i、boostdesc_axdhbboost_064.i、boostdesc_axdhbboost_128.i、boostdesc_axdhbboost_256.i、boostdesc_lbgm.i、vgg_generated_48.i、vgg_generated_64.i、vgg_generated_80.i、vgg_generated_120.i不用改名直接复制到D:opencv_contrib-4.5.2modulesxfeatures2dsrc文件夹下即可

(7)多次点击Configure按钮,将编译区的红色部分全部刷成无色,再点击Generate按钮即可,成功后会在CMake的信息栏出现以下信息:

四、MSVC操作

通过修改属性,以管理员身份启动MSVC打开OpenCV编译项目。
由于在该项目中,与编译速度和优化有关的MSVC选项:



这些选项全部没有,所以不用担心,大胆进行傻瓜式编译生成操作。
先对ALL Build项目的Debug和Release分别生成,再对INSTALL项目的Debug和Release分别生成。

此时在/build/install/文件夹中的文件,就是编译后所需要的所有文件。

五、有用文件提取和操作系统配置

MSVC编译成功后,主要有用的文件都在D:sourcesbuildinstall文件夹下面。将其中的axdhb、etc、include、x86四个文件夹复制出来即可,可如下图所示整理成一个文件夹,

系统环境配置
右击电脑的“属性”选项,选择其中的“高级系统设置”,然后选择“环境变量”,在“系统变量”的“Path”栏中添加路径“D:opencvCV+contribinstallx64vc15axdhb”,如下图所示:

编写相关的用于MSVC的编译配置文件
opencv_debug_win32.props和opencv_release_win32.props

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。