你参考的资料有:
https://blog.csdn.net/qq_36679208/article/details/109639607
https://blog.csdn.net/qq_27278957/article/details/120283706
https://blog.csdn.net/fengxinzioo/article/details/105646969

一、CMAKE将OpenCV原码生成能编译出库的VS工程:

1、CMAKE编译只有警告,但是VS编译后有1686个错误,主要有一下几种类型:
(1)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2059 语法错误:“)” (编译源文件 D:\OpenCV450\opencv-4.5.0_vs2017_64\modules\world\test\test_intrin512.avx512_skx.cpp) opencv_test_core_AVX512_SKX

(2)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 “void __cdecl ncvSetDebugOutputHandler(void (__cdecl*)(class std::basic_string<char,struct std::char_traits,class std::allocator > const &))” (?ncvSetDebugOutputHandler@@YAXP6AXAEBV?basicstring@DU?basic_string@DU?basics​tring@DU?char_traits@D@std@@V?KaTeX parse error: Expected group after '_' at position 40: …),该符号在函数 "bool _̲_cdecl nvidia_N…basic_string@DU?chartraits@D@std@@V?char_traits@D@std@@V?chart​raits@D@std@@V?allocator@D@2@@std@@W4OutputLevel@@@Z) 中被引用 opencv_test_cudalegacy D:\OpenCV450\opencv-4.5.0_vs2017_64\modules\world\main_nvidia.obj 1

(3)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 "double __cdecl cv::aruco::calibrateCameraAruco(class cv::_InputArray const &,class cv::_InputArray const &,class cv::InputArray const &,struct cv::Ptr const &,class cv::Size,class cv::_InputOutputArray const &,class cv::_InputOutputArray const &,class cv::_OutputArray const &,class cv::OutputArray const &,int,class cv::TermCriteria)" (?calibrateCameraAruco@aruco@cv@@YANAEBV_InputArray@2@00AEBU?Ptr@VBoard@aruco@cv@@@2@V?Ptr@VBoard@aruco@cv@@@2@V?Ptr@VBoard@aruco@cv@@@2@V?Size@H@2@AEBV_InputOutputArray@2@3AEBV_OutputArray@2@4HVTermCriteria@2@@Z),该符号在函数 “struct _object * __cdecl pyopencv_cv_aruco_calibrateCameraAruco(struct _object *,struct _object *,struct _object *)” (?pyopencv_cv_aruco_calibrateCameraAruco@@YAPEAU_object@@PEAU1@00@Z) 中被引用 opencv_python3 D:\OpenCV450\opencv-4.5.0_vs2017_64\modules\python3\cv2.obj 1

(4)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1120 9 个无法解析的外部命令 opencv_interactive-calibration D:\OpenCV450\opencv-4.5.0_vs2017_64\bin\Release\opencv_interactive-calibration.exe 1

(5)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK1120 1 个无法解析的外部命令 opencv_waldboost_detector D:\OpenCV450\opencv-4.5.0_vs2017_64\bin\Release\opencv_waldboost_detector.exe 1




点击工具中的“扩展与更新”进行2017版本的内的小版本(2017后面的数字不一样)更新,上面的inrin_avx512.hpp文件中的300多个错误就解决了,参考https://www.pianshen.com/article/66371558174/ 但会新报下面错误:

解决:工具中的“获取工具与功能”给下图中的Windows 10的对应的SDK版本选上即可,这里选了所有的!

但还会报如下错误,这个下面的

此时得到了看“输出”纠错的经验!!! 输出显示nvcc检测的到的CUDA版本10.1不行,匹配不了8.6算力的3070laptop,所以后面你又重新建工程配了个11.6的,注意CMAKE的配置除了下面两篇博客的配置外(两篇博客中设置兼顾就没有错误),还需要注意一下几点:
https://blog.csdn.net/qq_27278957/article/details/120283706
https://blog.csdn.net/qq_36679208/article/details/109639607



注意点:
(1)在cmake之前,给下载的.cache文件夹复制到D:\OpenCV450_4\opencv-4.5.0目录下并解压
(2)pyhon27的安装与环境变量的设置(你电脑配置好了,就不用重复配置了)
(3)在configure(cmake)时出现如下警告则需要去勾选(cmake时,gui中的configure相当于cmake命令,generation相当于make命令,此处不是生成能运行的动态链接库,而是生成VS工程,此处不报警告也不需要去勾选这一项

(3)4、下载错误有D:\OpenCV450_3\opencv-4.5.0_vs2017_64\CMakeDownloadLog.txt打印信息,(缺少相应文件,或者不对的需要下载覆盖的,走里面相应的网址下载然后覆盖,一般开了外网就不需要了
(4)bgm_i文件配置,参考博客:https://blog.csdn.net/qq_36679208/article/details/109639607。(一般开了外网也不需要了

二、 VS编译

换成11.6的CUDA后Release版本是编译生成和安装生成都没有问题了,但会有7千多个警告,其中有一部分是因为你没有删掉小于你显卡算力的算力设置导致的!
配置好的Release库位于下面目录中:D:\OpenCV450_4\opencv-4.5.0_vs2017_64\install



博客上是成功两个,这里是成功1个,可能是漏了啥库了,以后可能还需要在配置,注意你配了很多次,就最后的D:\OpenCV450_4文件夹下面配置成功了!!!

三、配置环境变量:

**

四、 测试(对应的OpenCV+CUDA处理图像的工程建立与配置方法见world文档或者CSDN上对应的自己记录的一篇文章,两个地方的内容是一样的!)

测试代码:
#include
#include “opencv2/opencv.hpp”
#include “opencv2/core.hpp”
#include <opencv2/cudawarping.hpp>
//#include “opencv2/cudawarping.hpp”
#include “opencv2/cudaarithm.hpp”
#include “opencv2/core/cuda.hpp”

using namespace std;
using namespace cv;

//#define CUDA_OPENCV

int main()
{
Mat img1 = imread(“1.jpg”);
Mat img2 = imread(“2.jpg”);

if (img1.empty() | img2.empty()) {cout << "Could not open an image!" << endl;return -1;
}int len = 10000;
auto start = std::chrono::system_clock::now();

#ifdef CUDA_OPENCV

//Create memory for resorting images on device
cuda::GpuMat d_result, d_img1, d_img2;// noArray;//cuda::Stream & String1 = cuda::Stream::Null();//Upload images to device
d_img1.upload(img1);
d_img2.upload(img2);
Mat h_result;for (size_t i = 0; i < len; i++)
{cv::cuda::add(d_img1, d_img2, d_result);}//Download result back to host
d_result.download(h_result);

#else

Mat h_result;
for (size_t i = 0; i < len; i++)
{cv::add(img1, img2, h_result);
}

#endif // CUDA_OPENCV

auto end = std::chrono::system_clock::now();
cout << "Times:" << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() * 1.0f / len << "ms";imshow("Image1", img1);
imshow("Image2", img2);
imshow("Result", h_result);
waitKey();system("pause");
return 0;

}

报错:
(1)严重性 代码 说明 项目 文件 行 禁止显示状态
错误 The CUDA Toolkit v10.1 directory ‘’ does not exist. Please verify the CUDA Toolkit is installed properly or define the CudaToolkitDir property to resolve this error. test_CSDN_3 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 10.1.targets 587
解决: 参考的官方论坛:https://forums.developer.nvidia.com/t/the-cuda-toolkit-v10-0-directory-does-not-exist/65821

(2)error : namespace “cv::cuda” has no member “add” 1> 找不到cv::cuda 的成员(搜也搜不到完全对应问题的解决)
注意这里百分百是没有添加相应的头文件hpp,添加了对应的就编译不报错了:

#include
#include “opencv2/opencv.hpp”
#include “opencv2/core.hpp”
#include <opencv2/cudawarping.hpp>
//#include “opencv2/cudawarping.hpp”
#include “opencv2/cudaarithm.hpp”
#include “opencv2/core/cuda.hpp”

(3)运行的时候老师报内存不行,(搜也搜不到完全对应问题的解决)
这里内存不行不是真的内存不行,而是没有添加编译好的库里的dll文件到工程的Release|Debug文件下或者系统文件夹下!

运行后结果如下:
CPU:

GPU:

这里的GPU运行时间比CPU长,说明你电脑上的CPU性能非常好,GPU在这里的运算优势体现不出来!

下面Debug库编译的时候的cmakeGUI设置集合了两篇博客里的设置,所以一点错误没有,后面Release也重新生成了一次!
BUID生成输出窗口

BUILD生成错误列表窗口

INSTALL生成输出窗口

INSTALL生成错误列表窗口

配置好Debug后报错:
VSDebug调试报错无法定位程序输入点于动态链接库 .exe

解决:你把Debug和Release的dll文件拷混了

**

win10+VS2017+OpenCV4.5.0+OpenCV_contrib4.5.0+CUDA10.1/CUDA11.6源码编译及测试代码问题相关推荐

  1. 【Flink源码篇】Flink 1.15.0源码编译

    目录 1. 下载源码并解压 2. Flink项目配置 3. 源码编译 4. 编译问题记录 5. IDEA调试Flink程序 1. 下载源码并解压 从github下载Flink的源码:https://g ...

  2. 【opencv安装和配置完整版教程】(win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置)

    [opencv安装和配置](win10+vs2019+opencv4.4.0+opencv_contrib-4.4.0+永久配置) 下载vs2019 opencv4.4.0.opencv_contri ...

  3. tx2+opencv源码编译教程(tx2+opencv4.4.0+opencv_contrib-4.4.0)

    tx2+opencv源码编译教程(tx2+opencv4.4.0+opencv_contrib-4.4.0) 一.卸载TX2上已安装的opencv 打开终端,输入以下指令卸载已经安装的opencv: ...

  4. 树莓派 编译安装OpenCV4.1.0+opencv_contrib-4.1.0

    一.下载OpenCV4.1.0+opencv_contrib-4.1.0           树莓派下载文件比较慢可以用电脑先下载文件,下载地址:           OpenCV4.1.0下载地址: ...

  5. win10 Opencv4.5.0源码编译支持CUDA加速

    目录 一.环境: 二.资源准备 三.release版编译 四.debug版编译 五.测试opencv-cuda能否使用 一.环境: VS2015 Cmake 二.资源准备 1.下载opencv4.5. ...

  6. Ubuntu下编译opencv4.1.0+opencv_contrib4.1.0 android sdk

    前言 虽然opencv已经有编译好的android sdk了,但是如果要用opencv_contrib里面的模块的话,肯定得自己编译了.但是其实也不难,因为opencv已经为用户准备了编译androi ...

  7. opencv4.0在linux下编译,Ubuntu 18.04源码编译安装OpenCV 4.0步骤

    Ubuntu 18.04下标准常规安装方法安装的OpenCV版本比较低,想尝鲜使用4.0版本,只好源码安装. 安装环境 OS:Ubuntu 18.04 64 bit 显卡:NVidia GTX 108 ...

  8. Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译

    Anaconda Python3.6 OpenCV4.1.0 Ubuntu 16.04源码编译 转载于:https://blog.csdn.net/phdsky/article/details/782 ...

  9. 【已解决】ubuntu 16.04 源码编译opencv4.5.1 报错 “../../lib/libopencv_imgcodecs.so.4.5.0: undefined reference t”

    源码编译opencv可参考教程:在ubuntu下安装opencv4.1.0详细步骤https://blog.csdn.net/weixin_44003563/article/details/90404 ...

最新文章

  1. 关于学习TensorFlow推荐的一些资源及使用方式
  2. numpy维度交换_numpy之转置(transpose)和轴对换
  3. cin.ignore的用法
  4. 阿尔法蛋机器人tf卡_如父母般陪着你长大,科大讯飞阿尔法蛋智能故事机Z1体验...
  5. 判断机器学习算法或深度学习算法优势常考虑的点
  6. 前端学习(2680):注意看位置 少加注释
  7. 使用WINPE在硬盘安装WIN7系统
  8. 2019 互联网月饼哪家强?阿里走情怀;百度最土豪;浪潮最高冷;抖音最.........
  9. 2021华科计算机考研复试机试 与 复试经验分享
  10. 概率逗号分号_概率里面的逗号
  11. 渗透测试与漏洞扫描详解
  12. disk-磁盘检测工具(二合一)
  13. python报错:index 1 is out of bounds for axis 0 with size 1
  14. 数电实验三 数据选择器及其应用 任务一:用74151芯片采用降维的方法实现F=ABC+ABD+ACD+BCD; 任务二:用74151芯片采用降维方式实现F=BCD反+BC反+A反D;
  15. 联想笔记本声音太小怎么办_电脑声音特别的小是怎么回事?我的笔记本
  16. 【老生谈算法】matlab算法离合器——离合器
  17. 【iOS开发】Mansory自动布局(autolayout)使用教程
  18. 7亿美元,京东上市前的最后一块踏板?
  19. 计算机应用基础有必要学吗,计算机应用基础教学革新的必要性
  20. 频繁跳槽者收,简历就该这样写!

热门文章

  1. osg 半透明遮挡实现
  2. 【Debug系列】Core dumped “corrupted size vs. prev_size”
  3. 语种切换_多语种跳转研究试运行全程直播:莫使金樽空对月
  4. devenv命令没响应
  5. 自我实验——自律习惯实验
  6. DDL DML DCL TCL概述
  7. 轩辕剑--资料集(二)
  8. 微信小程序:提交表单数据中选择的日期
  9. windows脚本实战
  10. 详述 从代码如何到可执行文件 的过程和解耦