OpenCV与VS2017环境搭建(一)(Pack安装与Stitcher类使用)

本文介绍了在Windows10上通过OpenCV的Win pack在Visual Studio 2017中设置环境,详细讲述了下载安装、VS项目属性配置的步骤,并给出了使用Stitcher类进行图像拼接的API调用示例。

在Windows10上,要在C++项目中使用OpenCV有2种方法:

  • 在官网下载Win pack,然后运行解压,得到已经编译好的OpenCV链接文件,在VS的项目属性中,添加相应的OpenCV目录与依赖项;
  • 在官网下载OpenCV源码,利用CMake与VS编译生成链接文件,然后用CMake配置并生成项目属性。

这篇博客介绍第一种方法,并展示一个OpenCV图像拼接Stitcher类的使用demo。下一篇博客介绍通过源码编译的方式搭建OpenCV环境。


1. Win pack方式与VS项目属性设置

1.1 下载安装

OpenCV官网下载某个版本的OpenCV的Win pack:
在这里插入图片描述
下载后双击进行解压,得到build与sources文件夹(我的解压路径是C:\Program Files\opencv3.4.0):
在这里插入图片描述

1.2 VS项目配置

按照常规方法新建一个VS项目,然后打开项目属性,进行如下配置:

(1) VC++目录->包含目录

在这里插入图片描述

(2) VC++目录->库目录

在这里插入图片描述

(3) 链接器->输入->附加依赖项

在这里插入图片描述
其中,opencv_world340.lib是Release版本的,opencv_world340d.lib是Debug版本的。

1.3 API调用(示例为图像拼接Stitcher类的使用)

#include "pch.h"
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/stitching.hpp>

using namespace std;
using namespace cv;

vector<Mat> imgs;

int main()
{
	string folder = "./example/";
	int img_index_start = 1;
	int img_index_end = 2;
	for (int i = img_index_start; i <= img_index_end; i++)
	{
		string file = folder + to_string(i) + ".JPG";
		Mat img = imread(file);
		if (img.empty())
		{
			cout << "Can't read image" << file << endl;
			return -1;
		}
		Mat dst;
		resize(img, dst, Size(1800, 1200));
		imgs.push_back(img);
	}
	/*Mat img1 = imread("1.jpg");
	Mat img2 = imread("2.jpg");


	namedWindow("picture 1", CV_WINDOW_NORMAL);
	namedWindow("picture 2", CV_WINDOW_NORMAL);
	imshow("picture 1", img1);
	imshow("picture 2", img2);

	imgs.push_back(img1);
	imgs.push_back(img2);*/

	//create stitcher
	Stitcher stitcher = Stitcher::createDefault(true);
	//stitching
	Mat panorama;
	Stitcher::Status status = stitcher.stitch(imgs, panorama);
	if (status != Stitcher::OK)
	{
		cout << "can not stitch images, error code = " << int(status) << endl;
		return -1;
	}

	//save and show
	imwrite("result.jpg", panorama);
	namedWindow("result image", CV_WINDOW_NORMAL);
	imshow("result image", panorama);

	waitKey(0);
	return 0;
}

这种方法使用较为简单,但是每次都需要进行项目配置,且无法对源码进行修改,也无法跨平台使用。下一篇博客介绍通过源码编译的方式搭建OpenCV环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值