vs2019配置opencv,解决报错“无法打开源opencv2/opencv.hpp”

目录

  • 1,opencv下载地址
    • 1.1 如何确定用什么版本的opencv
      • opencv2和3的区别
      • opencv3和4的区别
    • 1.2 source和exe
    • 1.3 VC11、VC14、VC15库对应VisualStudio编译版本
  • 2 ,vs2019配置opencv过程
  • 3,样例程序
  • 4,配置过程中出现的bug
    • 4.1 opencv配置后图片和视频无法读取
    • 4.2 配置成debug x64的
    • 4.3 return前加上destroyAllWindows();

1,opencv下载地址

https://opencv.org/releases/#
vs2019配置opencv,解决报错“无法打开源opencv2/opencv.hpp”_第1张图片

1.1 如何确定用什么版本的opencv

没有特殊情况就下载最新版本

opencv2和3的区别

Opencv2标志着opencv革命性的改变,Opencv2带来了全新的C++接口,将Opencv的能力无限放大。在2.0时代,opencv增加了新的平台支持,包括iOS和Android,通过CUDA和openGL实现了GPU加速,为Python和Java用户提供了接口。

Opencv 3改变了项目架构的方式,3.0版本不会像2.0版本一样激进的尝试,只会有足够稳定的改进。项目架构的改变是Opencv 3最为重大的革新之处。2.0版本是各个模块都是以整体的形式构建然后组合在一起的。然而,随着功能的增加,opencv主体集成了各种各样的功能模块,变得越来越臃肿。而3.0版本就是为了给日益发福的opencv减肥,因为Opencv3决定向其他大项目一样,抛弃整体架构,使用内核+插件的架构形式。

在GitHub中,除了存放着正式版本的opencv的主仓库和新增加的“opencv_extra”仓库以外,opencv3中还添加了一个名为“opencv_contrib”的全新仓库,该仓库包括很多让人兴奋的功能:脸部识别,文本探测,文本识别,新的边缘检测器,充满艺术感的图像修复,深度地图处理,新的光流和追踪算法等。

opencv_contrib仓库是大多数实验性代码放置的地方,一些API可能会有改变,这些额外模块可以在CMake中用OPENCV_EXTRA_MODULES_PATH=/modules传递给CMake文件。

opencv3和4的区别

https://blog.csdn.net/qq_27605099/article/details/103427440

1.在扩展模块中去掉了SIFT与SURF相关API的调用文件
现在如果想在OpenCV Python 4.x中想使用SIFT与SURF只有靠自己从源代码CMake来编译生成python版本的安装包才可以。
2.全部取消CV_XXX这种枚举类型,比如在3.x中可以正常使用的语句
3.findContours函数返回结果由3.x的三个参数变为两个参数
4.增加了python语言版本的对DNN模块的加持!
支持图像分类、对象检测(SSD、RCNN、Faster-RCNN、mask-RCNN)、图像分割等网络的使用

1.2 source和exe

source是压缩包,直接解压就能使用,而且方便使用cmake进行重新编译
windows是exe,

1.3 VC11、VC14、VC15库对应VisualStudio编译版本

虽然下载下来后面写着vc14-vc15,但是配置vs2019也能用
 VC11,Visual Studio 2012编译器
 VC14,Visual Studio 2015编译器
 VC15,Visual Studio 2017编译器
 - VC11构建需要安装Visual Studio 2012 x86或x64的Visual C ++ Redistributable
 - VC14构建需要安装Visual Studio 2015 x86或x64的Visual C ++ Redistributable
 - VC15构建需要安装Visual Studio 2017 x64或x86的Visual C ++ Redistributable
vs2019配置opencv,解决报错“无法打开源opencv2/opencv.hpp”_第2张图片

2 ,vs2019配置opencv过程

https://blog.csdn.net/weixin_55796564/article/details/122543160

3,样例程序

#include <iostream>
#include <opencv2/core/core.hpp>//包含openCV的基本数据结构,数组操作的基本函数
#include <opencv2/highgui/highgui.hpp>//图像的交互界面,视频的捕捉也可写为#include 
#include <opencv2/imgcodecs.hpp>//图像的变换,滤波直方图,以及形状的描述等函数库
using namespace std;
using namespace cv;
int main1(char argc, char* argv[])
{
	cout << "now i will open inmage!" << endl;
	Mat image;
	image = imread("C:\\Users\\16078\\Desktop\\1.jpg");//打开图像
	if (image.empty())
	{
		cout << "Read Error" << endl;
	}
	cout << "This image is " << image.rows << " x " << image.cols << endl;
	//namedWindow("Original Image", WINDOW_AUTOSIZE);//若改成WINDOW_NORMAL可以使用鼠标调节图片大小,
	imshow("Original Image", image);
	waitKey(0);
	return 0;
}

4,配置过程中出现的bug

4.1 opencv配置后图片和视频无法读取

解决方案:配置链接库的时候,将d.dll放前面

4.2 配置成debug x64的

可能是因为我的电脑是64位的,下载的opencv版本是64位的原因吗

4.3 return前加上destroyAllWindows();

destroyAllWindows();//不加这个,会出现退出异常

你可能感兴趣的:(OpenCV,opencv,计算机视觉)