从配置OpenCV开始,建立一个简单的例程,用以显示一个jpg图片
1、登录OpenCV官方网站的下载页面:https://opencv.org/releases.html,
有几个版本可以选择,比如选择3.4.5,在Windows平台上使用,所以选择Win Pack,如下图
2、选择相应版本后会自动进入下载页面,单击保存,将压缩文件保存到本地
3、下载完成,打开文件所在的文件夹。
文件是一个自解压文件,直接双击可以运行
4、选择准备解压到的文件夹,点击"Extract"解压缩下载的文件包
5、解压后的文件夹里面包含授权文件以及两个文件夹
build:库文件所在的文件夹
source:示例代码文件夹,可以通过学习示例代码熟悉函数库的使用
6、打开build文件夹,可以看到各种开发平台的库被分类保存在各文件夹里面
7、现在可以配置环境变量了
打开Visual Studio2015,新建一个Win32控制台应用程序,项目名称 FirstCV,项目文件夹选择E:\
8、在解决方案资源管理器窗口的项目名称上单击右键,选择“属性”
9、在属性页选择 VC++目录
⦁ 在包含目录中添加OpenCV包含文件所在的文件夹(解压缩后的文件夹):D:\opencv\build\include
⦁ 在库目录中添加OpenCV库文件所在的文件夹(解压缩后的文件夹):D:\opencv\build\x64\vc14\lib\
⦁ 在“属性页”选择“链接器”->输入,在“附加依赖项”中添加OpenCV的库文件D:\opencv\build\x64\vc14\lib\opencv_world343.lib
(本人使用的是OpenCV 3.4.3,所以链接库的名称是opencv_world343.lib,如果是其他版本请注意替换)
10、将以下代码拷贝到FirtCV.cpp中
#include "stdafx.h"
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>
using namespace cv;
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
/* 读取图像文件 */
Mat img = imread(argv[1], IMREAD_ANYCOLOR);
if (!img.data)
return -1;
// 显示矩阵的行列数
cout << "行数:" << img.rows << " 列数:"<<img.cols<<endl;
Size img_size = img.size();
cout << "dims of img:" << img.dims << endl;
cout << "channels of img:" << img.channels() << endl;
cout << "Size of img:" << img.size() << endl;
cout << "total of img:" << img.total() << endl;
cout << "pt 0,0:" << img.at<Vec3b>(0, 1) << endl;
Vec<unsigned char, 3> vi( 128, 255, 0 );
int row = 10;
unsigned char *ptr = img.ptr<unsigned char >(row);
for (int mCol = 0; mCol < img.cols/20; mCol++)
{
cout << "Row:0 Position:" << mCol << " Val:" << (int)ptr[mCol] << endl;
ptr[mCol] = 128;
img.at<Vec3b>(mCol, 100)=vi;
}
// 显示图像
imshow("原图", img);
waitKey(0); /* OpenCV函数,等待键盘输入, */
return 0;
}
11、配置项目编译模式为:Release/x64,运行项目,程序报错:
12、处理方法
A、配置电脑的环境变量
我的电脑->属性->高级系统设置->高级->环境变量->系统变量->
选择Path然后点击“编辑”->新建,然后在输入框中复制进你的OpenCV的bin文件夹所在的路径。
例如:D:\opencv\build\x64\vc14\bin
B、将D:\opencv\build\x64\vc14\bin文件夹下面的opencv_world343.dll拷贝到项目文件夹里面,我的项目文件夹是E:\FirstCV\FirstCV,如果希望运行release程序,则还需要拷贝到E:\FirstCV\x64\Release文件夹里面
13、编译并真正运行这个程序
因为这个例程是通过命令行传递参数的,并且需要告诉程序图片文件的名字,所以我们先拷到E:\FirstCV\x64\Release文件夹里面
14、打开一个命令窗口
15、输入 FirstCV apple.jpg,回车
OK,看到了运行结果
运行成功,配置正确,调用正确。
不过真正使用的时候,本人经常转换于几台电脑中间,每台电脑的环境不太一致,所以,环境变量的配置一般都稍作优化,自己建一个文件夹,只包含常用的文件而不是把opencv下面的所有文件都拷进来,然后把这些文件直接放到项目的代码文件夹里面,这样走到哪里都不必配置环境变量了。