【C++ 图像处理 OpenCV】20230814-OpenCV和OpenCV-contrib配置过程中遇到的问题

本文详细描述了在配置OpenCV4.5.5环境时遇到的问题,包括CMake中的JNI和VTK找不到、路径转义错误、附加依赖项配置等,并提供了相应的解决步骤。

OpenCV和OpenCV-contrib配置中遇到的问题

一、环境

Microsoft Visual Studio 2022

opencv-4.5.5-vc14_vc15 .exe,以下简称“D:\OpenCV-4.5.5\opencv\build\include\opencv2”为OpenCV库文件夹

opencv-contrib-4.5.5-zip。需要与opencv版本对应

cmake-3.24.0-rc1-windows-x86_64.msi。有博主说,4.5.5配cmake3.2.5及以上会报错,选择3.2.4成功配置环境。

https://cmake.org/files/

jdk-17_windows-x64_bin.msi

VTK-8.2.0.zip

以上资源下载链接

二、遇到的问题

2.1 配置环境遇到的问题

2.1.1CMake遇到的问题

2.1.1.1 JNI is not found

​ 重新下载安装jdk。安装时直接选择把路径添加到环境变量PATH中,就不用再配置环境变量了。

2.1.1.2 VTK is not found
Found JNI: C:/Program Files/Java/jdk-17/include  found components: AWT JVM 
VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
CMake Error at cmake/OpenCVModule.cmake:356 (_glob_locations):
  Syntax error in cmake code at

    D:/OpenCV-4.5.5/opencv/sources/cmake/OpenCVModule.cmake:356

  when parsing string

    D:\OpenCV-4.5.5\opencv_contrib-4.5.5\modules

  Invalid character escape '\O'.
Call Stack (most recent call first):
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:927 (ocv_register_modules)

​ 下载VTK,重新BUILD和INSTALL。我下载的版本未VTK-8.2.0。

​ 参照VTK下载并安装

2.1.1.3 “\o"转义字符出错。

​ 在CMake输入路径时,路径用的是"\“,需要改为使用”/"。

​ 如
在这里插入图片描述

2.1.1.4 无法启动程序 xxxxxxxxx 系统找不到指定的文件

​ 如下图

在这里插入图片描述

​ 该错误时因为没有配置“附加依赖项”。有可能你认为自己已经配置了“附加依赖项”,但是可能是你再opencv和opencv-contrib的编译过程中配置了“附加依赖项”,而将该配置 配置给了opencv项目或者opencv-contrib项目,而没有配置给你自己的项目,比如我这里没有配置“附加依赖项”给自己的“opencv_demo”项目。

2.1.1.5 无法打开输入文件“opencv——xxx.lib”。

原因时“附加依赖项”的路径不对,我最开始配置时,直接配置的时lib的名字,没有配置绝对路径。改为配置为绝对路径后,就可以正常运行了。

在这里插入图片描述

配置的依赖项目录,前面时自己刚才生成的newbuild目录下的库路径(每个人不一定相同)。

D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_aruco455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_barcode455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_bgsegm455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_bioinspired455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_calib3d455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_ccalib455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_core455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_datasets455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_dnn_objdetect455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_dnn_superres455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_dnn455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_dpm455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_face455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_features2d455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_flann455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_fuzzy455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_gapi455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_hfs455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_highgui455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_img_hash455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_imgcodecs455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_imgproc455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_intensity_transform455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_line_descriptor455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_mcc455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_ml455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_objdetect455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_optflow455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_phase_unwrapping455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_photo455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_plot455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_quality455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_rapid455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_reg455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_rgbd455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_saliency455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_shape455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_stereo455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_stitching455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_structured_light455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_superres455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_surface_matching455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_text455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_tracking455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_video455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_videoio455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_videostab455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_viz455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_wechat_qrcode455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_xfeatures2d455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_ximgproc455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_xobjdetect455.lib
D:\OpenCV-4.5.5\opencv\newbuild\install\x64\vc17\lib\opencv_xphoto455.lib

2.2 编写代码遇到的问题

2.2.1无法打开源文件:

  • /face.hpp和face/facerec.hpp——>下载opencv_contrib,在里面找到face文件夹和face.hpp。然后将其拷贝到OpenCV库文件夹下。

2.2.2未定义符CvFont——>添加依赖

#include "opencv2/imgproc/imgproc_c.h"

2.2.3未定义符FaceRecognizer——>添加命名空间。


using namespace cv::face;

2.2.4未定义符createEigenFaceRecognizer()

将该方法改为EigenFaceRecognizer::create()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆得儿不是猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值