供自己以后学习使用。
opencv的安装配置:
1.去官网下载realse好的文件。
点击Library。
找到合适的版本,选择Windows,下载得到一个exe可执行程序,运行该exe文件并extract就得到了realse好的代码。
如果选择source(源码),则下载后需要使用cmake进行configure,generation然后用VS进行编译,比较麻烦。
2.电脑系统方面的配置。
(1)环境变量的配置。以我自己安装的opencv为例,需要在环境变量中添加如下路径:
../opencv\build\x86\vc11\bin
(2)系统文件的配置。需要把bin文件夹下的三个dll文件复制到
C://windows/system32(X32系统)
C://windows/sysWOW64(X64系统)
文件夹下
3.VS工程的配置
(1)vc++包含目录中包括
../opencv\build\include
../opencv\build\include\opencv2
(2)库目录中包含
../opencv\build\x86\vc11\bin
(3)项目属性->链接器->输入->附加依赖项
..\opencv\build\x86\vc11\lib\opencv_world300.lib
至此opencv基本配置结束。
下面是使用中出现的一些问题:
使用的是如下测试代码:
#include<opencv2/opencv.hpp>
#include <opencv2\imgproc\types_c.h>
using namespace cv;
void main()
{
Mat img = imread("circle.jfif"); //此处不设置第二个参数,默认值为1,故读入总是转换图像到彩色再返回,注意修改文件路径
Mat srcGray;
namedWindow("image", WINDOW_NORMAL); //创建可以自己调节大小的窗口,第二参数说明是自己可以调节大小
cvtColor(img, srcGray, CV_BGR2GRAY); //将彩色图像转换成灰度图像
imshow("image", srcGray);
//imwrite("messigray.png", srcGray); //第一个参数是文件名,要带上文件的格式即后缀。
waitKey();
}
(1)VS提示“模块计算机类型x64与目标计算机类型x86不一致”。
模块计算机类型指的是安装的opencv指定的计算机类型,最初我下载的是opencv官网给的4.0以上的realse版本,但其中build文件夹下只有x64没有x86。为此有两个解决方法。一是下载源代码,用cmake+VS自行编译X64版本。二是像我一样下载opencv3.0版本,其中有x86文件夹。
(2)VS提示找不到MSVCP110D.dll。
引用博客:(17条消息) msvcp110d.dll 丢失问题解决_狼哥-CSDN博客_msvcp110d
一般用vs生成的程序在安装了vs运行包的电脑上也会报出来这个错误,很多人不理解为什么我安装了运行环境还报错呢。主要原因是你的应用程序是在debug环境下生成的,这时候应用程序的支持库是debug版本,而微软给发布的运行环境是releas版的。msvcp110d.dl 这个库就是debug版本的库文件,如果用release版发布需要的库就是msvcp110.dl 这个库,这个库是在vs的运行环境中,但是msvcp110d.dl 这个库是不在运行环境中。库文件名字后边带d的都是调试版本库。因此你把程序中所有用到的库都改成release版本就不会再报出错误了。
所以问题在于我看别人的配置时,附加依赖项用的是opencv_world300d.lib,其中d代表调试的debug版本,但微软的软件都是realse版本,把附加依赖项改成opencv_world.lib就可以了。