我是学图像匹配的,所以需要装contrib库,所以用两篇博客来记录的的安装过程,一来分享 二来做笔记
但是千万记得,要沉下心装opencv,不要看一半嫌麻烦就溜了,我第一次装的时候也受到很多挫折,但是我发现很大部分原因是因为我从来没有一篇从头看到尾,我总是闲麻烦
觉得我写得好给个赞呗,不定期更新我的学习笔记和代码哦
1.下载opencv
去opencv官网下载:https://opencv.org/releases/
最好用chrome下载,用国产的有时会卡
http://tech.sina.com.cn/down/
新浪下载的googlechrome没有毒
下载完打开是个exe文件,傻瓜式操作就好了,我直接放G盘了
搞定了应该和我是一样的,有这个文件夹
************************
2.配置环境变量(要装contrib库的可以停在第一步了,装了下面的浪费时间,看我另一篇博客)
在原来的路径上加分号(英文) ;G:\opencv\build\x64\vc15\bin (找你刚刚opencv装好的路径)
然后将这个目录(G:\opencv\build\x64\vc15\bin)下面的opencv_world410.dll和opencv_world410d.dll文件复制到C:\Windows\SysWOW64;opencv_ffmpeg410_64.dll复制到C:\Windows\System32
(410意思是4.1.0版本)
**
3.VS设置
我一般都是用C++控制台项目
打开vs的属性管理器
***
然后这样 *****************************
改下面包含目录 ,库目录,附加依赖项的内容
包含目录里面放 G:\opencv\build\include\opencv2(选自己的目录)
*****************G:\opencv\build\include
库目录里面放 G:\opencv\build\x64\vc15\lib
附加依赖项里面放 opencv_world410d.lib (410是4.1.0版本的意思)
然后选择加载Misrcosoft的服务,不加载运行程序会报错缺少dll
************************************
在此目录下缓存符号,对着改自己的路径,先创个文件夹叫Misrcosoft.pdb
到这里就应该可以了,试试程序,记得跑x64的编译器,因为我们刚刚都是在x64上调试的
#include <iostream>
#include <stdio.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("D:\\Desktop\\捕获.png");
imshow("原图", img); //显示原图
//-------------------------------------------------腐蚀-------------------------------------------------------
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15)); //返回特定参数
Mat img2;
erode(img, img2, element); //调用参数来腐蚀
imshow("腐蚀", img2); //显示效果图
//-------------------------------------------------滤波--------------------------------------------------------
Mat img3;
blur(img, img3, Size(7, 7));
imshow("模糊", img3);
//-------------------------------------------------化线--------------------------------------------------------
Mat img4, edge, imgt;
img4.create(img.size(), img.type()); //先保留原img的type和size
cvtColor(img, imgt, COLOR_BGR2GRAY); //imgt是img的灰度图像
imshow("灰度图", imgt);
blur(imgt, edge, Size(3,3)); //滤波
imshow("灰度后滤波", edge);
Canny(edge, edge, 3, 9, 3);
imshow("化线", edge);
//-------------------------------------------------------------------------------------------------------------
waitKey(0);
return 0;
}
完工,第一次跑要加载比较多dll,耐心等等