VS2019配置OpenCV

简介: VS2019配置OpenCV

VS2019配置OpenCV

  • 1.下载文件
  • 2.添加环境变量
  • 3.配置vs2019
  • 4.改变运行环境
  • 5.测试

VS2019配置OpenCV 4.3

装好几次,每次都要找教程,累了。记录一下给自己凑活着看!

其他版本的OpenCV也适用,只不过是动态库的文件名不是430.dll而已

4.0为400.dll

4.1为410.dll

如此类推。

1.下载文件

(点我)

OpenCV官网下载openc4.3的exe文件。

双击即可解压(解压到任意路径,自己记得就好,不过后面的配置也是在根据这个解压路径来配置)

2.添加环境变量

2.1:添加系统环境变量path:

(解压路径)\opencv\build\x64\vc15\bin

2.2:复制动态库

将 (解压路径)\opencv\build\x64\vc15\bin文件夹中的

opencv_world430.dll,
opencv_world430d.dll,
opencv_videoio_ffmpeg430_64.dll,

复制到C:\Windows\System32

3.配置vs2019

视图 -> 其他窗口 -> 属性管理器,

选中 属性管理器中 Debug | x64 文件夹下的 Microsoft.Cpp.x64.user,

右键 – 属性(选择对Microsoft.Cpp.x64.user是对全局进行设置,也就是一次配置,以后都能用)

如果没有Microsoft.Cpp.x64.user这个文件,

就去下载文件放到C:\用户\用户名\AppData\Local\Microsoft\MSBuild\v4.0这个文件夹中(…/AppData/…为隐藏文件夹).

缺失的文件:链接:https://pan.baidu.com/s/1TTi6q1PaYzUiXZdn5Z9oxQ

提取码:to2y


VC++目录 – 包含目录

新建 浏览 添加以下路径

(解压路径)\opencv\build\include

(解压路径)\opencv\build\include\opencv2

VC++目录 – 库目录

新建 浏览 添加以下路径

(解压路径)\opencv\build\x64\vc15\lib

链接器 – 输入 – 附加依赖项

添加以下依赖

opencv_world430d.lib

opencv_world430.lib

(依赖所在目录: (解压路径)\opencv\build\x64\vc15\lib)

我用Debug | x64,所以选择添加opencv_world430d.lib的依赖就可以了。

debug模式 和 realse模式

(opencv_world430d.lib为debug模式的库)

(opencv_world430.lib为Release 模式的库)


4.改变运行环境

由于我们是对属性管理器中 Debug | x64 进行配置,所以模式和平台要选和下图一致。不然会找不到库。(如需要使用Release | X64,只需要把属性管理器中 Release | X64 文件夹下的 Microsoft.Cpp.x64.user中的属性表进行如上配置即可)

5.测试

(不要看代码多,复制就好了.不需要添加图片到工程里,可以直接测试)


#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#define w 400
using namespace cv;
void MyEllipse( Mat img, double angle );
void MyFilledCircle( Mat img, Point center );
void MyPolygon( Mat img );
void MyLine( Mat img, Point start, Point end );
int main( void ){
  char atom_window[] = "Drawing 1: Atom";
  char rook_window[] = "Drawing 2: Rook";
  Mat atom_image = Mat::zeros( w, w, CV_8UC3 );
  Mat rook_image = Mat::zeros( w, w, CV_8UC3 );
  MyEllipse( atom_image, 90 );
  MyEllipse( atom_image, 0 );
  MyEllipse( atom_image, 45 );
  MyEllipse( atom_image, -45 );
  MyFilledCircle( atom_image, Point( w/2, w/2) );
  MyPolygon( rook_image );
  rectangle( rook_image,
         Point( 0, 7*w/8 ),
         Point( w, w),
         Scalar( 0, 255, 255 ),
         FILLED,
         LINE_8 );
  MyLine( rook_image, Point( 0, 15*w/16 ), Point( w, 15*w/16 ) );
  MyLine( rook_image, Point( w/4, 7*w/8 ), Point( w/4, w ) );
  MyLine( rook_image, Point( w/2, 7*w/8 ), Point( w/2, w ) );
  MyLine( rook_image, Point( 3*w/4, 7*w/8 ), Point( 3*w/4, w ) );
  imshow( atom_window, atom_image );
  moveWindow( atom_window, 0, 200 );
  imshow( rook_window, rook_image );
  moveWindow( rook_window, w, 200 );
  waitKey( 0 );
  return(0);
}
void MyEllipse( Mat img, double angle )
{
  int thickness = 2;
  int lineType = 8;
  ellipse( img,
       Point( w/2, w/2 ),
       Size( w/4, w/16 ),
       angle,
       0,
       360,
       Scalar( 255, 0, 0 ),
       thickness,
       lineType );
}
void MyFilledCircle( Mat img, Point center )
{
  circle( img,
      center,
      w/32,
      Scalar( 0, 0, 255 ),
      FILLED,
      LINE_8 );
}
void MyPolygon( Mat img )
{
  int lineType = LINE_8;
  Point rook_points[1][20];
  rook_points[0][0]  = Point(    w/4,   7*w/8 );
  rook_points[0][1]  = Point(  3*w/4,   7*w/8 );
  rook_points[0][2]  = Point(  3*w/4,  13*w/16 );
  rook_points[0][3]  = Point( 11*w/16, 13*w/16 );
  rook_points[0][4]  = Point( 19*w/32,  3*w/8 );
  rook_points[0][5]  = Point(  3*w/4,   3*w/8 );
  rook_points[0][6]  = Point(  3*w/4,     w/8 );
  rook_points[0][7]  = Point( 26*w/40,    w/8 );
  rook_points[0][8]  = Point( 26*w/40,    w/4 );
  rook_points[0][9]  = Point( 22*w/40,    w/4 );
  rook_points[0][10] = Point( 22*w/40,    w/8 );
  rook_points[0][11] = Point( 18*w/40,    w/8 );
  rook_points[0][12] = Point( 18*w/40,    w/4 );
  rook_points[0][13] = Point( 14*w/40,    w/4 );
  rook_points[0][14] = Point( 14*w/40,    w/8 );
  rook_points[0][15] = Point(    w/4,     w/8 );
  rook_points[0][16] = Point(    w/4,   3*w/8 );
  rook_points[0][17] = Point( 13*w/32,  3*w/8 );
  rook_points[0][18] = Point(  5*w/16, 13*w/16 );
  rook_points[0][19] = Point(    w/4,  13*w/16 );
  const Point* ppt[1] = { rook_points[0] };
  int npt[] = { 20 };
  fillPoly( img,
        ppt,
        npt,
        1,
        Scalar( 255, 255, 255 ),
        lineType );
}
void MyLine( Mat img, Point start, Point end )
{
  int thickness = 2;
  int lineType = LINE_8;
  line( img,
    start,
    end,
    Scalar( 0, 0, 0 ),
    thickness,
    lineType );
}

目录
相关文章
|
21天前
|
计算机视觉 C++
基于VS2019和Opencv4,对hsv颜色空间的图像分割原理以及实现
这篇文章介绍了基于HSV颜色空间的图像分割原理,包括HSV模型的基本概念和如何在OpenCV中通过设置HSV的色彩范围来实现图像中特定颜色的物体分割,并通过示例代码展示了在静态图像和视频流中进行颜色分割的方法。
基于VS2019和Opencv4,对hsv颜色空间的图像分割原理以及实现
|
21天前
|
并行计算 算法 Java
cmake+vs2019编译OpenCV
cmake+vs2019编译OpenCV
27 0
|
21天前
|
开发工具 git 计算机视觉
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
在Ubuntu16.04上配置CLion的OpenCV4.3.0开发环境
22 0
|
4月前
|
开发工具 计算机视觉 C++
OpenCv、Vis Studio安装与配置
OpenCv、Vis Studio安装与配置
OpenCv、Vis Studio安装与配置
|
4月前
|
C语言 计算机视觉 Python
【Qt】Qt下配置OpenCV
【Qt】Qt下配置OpenCV
|
4月前
|
编译器 计算机视觉 Python
pycharm配置opencv库
pycharm配置opencv库
|
4月前
|
Linux 计算机视觉
【Linux】ubuntu1804配置opencv4.5.5
【Linux】ubuntu1804配置opencv4.5.5
|
4月前
|
编译器 测试技术 C语言
vscode+CMakeLists+mingw配置Opencv4.5.5
vscode+CMakeLists+mingw配置Opencv4.5.5
321 0
|
4月前
|
计算机视觉 C++ Windows
C++VS2019中配置opencv(在空项目中配置opencv和在cmake中配置opencv)-解决的问题 找不到opencv_world440d.dll
C++VS2019中配置opencv(在空项目中配置opencv和在cmake中配置opencv)-解决的问题 找不到opencv_world440d.dll
67 0
|
10天前
|
算法 计算机视觉
opencv图像形态学
图像形态学是一种基于数学形态学的图像处理技术,它主要用于分析和修改图像的形状和结构。
26 4