opencv是一套图像处理应用十分广泛的计算机图像处理分析“开源计算机视觉库”
本篇介绍的是opencv3.0和vs2015的环境配置
1.下载opencv3.0和vs2015.下载链接我就不给了。上bing百度关键词就可以了。我都是官网下载的,我的vs是2015professional版本
opencv现在最新的应该是3.2,但是download点进去之后往下翻有3.0版本。找不到可以留言问我。因为每个版本配置都有细小差别,为了避免不必要的麻烦。最好就用这两个版本。
vs安装我就不说了,有的同学说安装时候卡在某个地方不动了,卡了好久,这个是因为你没挂vpn有些东西装不上,把网断了重连就好了,你等多久这个也装不上。
opencv直接双击找个路径extract
我选的是D:\programing_software。这个会自动创建一个名为opencv的文件夹东西extract到里面,所以我路径就到这。
2.接下来配置环境变量
我的电脑(计算机)右击->属性->高级系统设置->环境变量->系统变量里的Path
win10可以直接新建环境变量,那么添加两个,这个跟你的路径有关,自己添加时候注意找下这个文件夹把路径复制过来就好了
D:\programing_software\opencv\build\x64\vc12\bin
D:\programing_software\opencv\build\x86\vc12\bin
3.打开vs2015,新建->项目->win32控制台应用程序
单击下一步之后把空项目选中,确认即可。
4.接下来就很重要了,我们要开始真正的难点了,先点击视图->其他窗口->属性管理器,把我截图左边这个东西调出来
然后直接在这个项目ConsoleApplication1上右击,选择属性,
4.1.1 vc++目录->可执行文件目录,编辑加入
D:\programing_software\opencv\build\x86\vc12\bin
D:\programing_software\opencv\build\x64\vc12\bin
这个在你点击后会可以自己添加然后找路径的,最好自己找到x86和x64下的vc12的两个bin文件夹,而不要复制我的
4.1.2 还是vc++目录->包含目录,添加这三个最好也是自己浏览出来的
D:\programing_software\opencv\build\include
D:\programing_software\opencv\build\include\opencv
D:\programing_software\opencv\build\include\opencv2
4.1.3 vc++目录->库目录
D:\programing_software\opencv\build\x64\vc12\lib
D:\programing_software\opencv\build\x64\vc12\staticlib
每一个界面大概都像这样
4.2现在转到配置属性的链接器->输入,添加这两个,300代表版本,有的攻略会在300后面加个d,加d是debug用到东西,不加我测试时候是debug和release都可用。暂时不加,如果发现debug不能跑,再补上也行。
opencv_ts300.lib
opencv_world300.lib
5.那么到这里配置就告一段落了,接下来我们来测试
刚才建好的项目源文件->右击添加->c++文件,随便取个名字我的是 main.cpp。然后写下下面这一段
#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;
int main(){
// 读入一张图片(游戏原画)
Mat img = imread("F:\\img\\9.jpg.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待6000 ms后窗口自动关闭
waitKey(6000);
}
注意把()里面改成自己的图片路径,这个会显示你的图片,如果到这里都没问题,你就成功了。可以试试第六条,如果失败了也不要急,请看注意事项
6.这是opencv很有意思的一个组合技,调用摄像头并且用canny方法抽象成线条,代码如下
#include<iostream>
#include<opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
int main(){
/* // 读入一张图片(游戏原画)
Mat img = imread("F:\\img\\9.jpg.jpg");
// 创建一个名为 "游戏原画"窗口
namedWindow("游戏原画");
// 在窗口中显示游戏原画
imshow("游戏原画", img);
// 等待6000 ms后窗口自动关闭
Mat element = getStructuringElement(MORPH_RECT,Size(15, 15));
Mat dstImage;
erode(img, dstImage, element);
imshow("fushi", dstImage);
waitKey(60000);
*/
VideoCapture capture(0);
Mat edges;
while (1)
{
Mat frame;
capture >> frame;
cvtColor(frame, edges, CV_BGR2GRAY);
blur(edges, edges, Size(7, 7));
Canny(edges, edges, 0, 30, 3);
imshow("dushu", edges);
if (waitKey(30) >= 0) break;
}
return 0;
}
效果如图
注意事项:
1.F:\\img\\9.jpg.jpg。明显是我的图片路径,这个你图片放在哪里,就改成哪里。并且表示路径的\还要再加一个
\成为双斜杠。之所以会出现9.jpg.jpg是我故意的,因为很多同学这里运行报错是因为图片名称不对,你把图片命
名为9.jpg之后,实际上是在没有显示其扩展名的情况下命名的。而程序在找图片时会自己带上一个.jpg的扩展名
也就变成了9.jpg.jpg。这个有没有扩展名,学计算机的应该都知道,实在不知道自己试就是了。
2.有的计算机会把jpg文件扩展名默认为.jpeg。那你根据情况自己看。有的攻略说把图片直接放在和.cpp的一个文
件夹里直接引用就可以,不用在计算机里面找路径,我不知道为什么,反正我的不行,否则会出现这样的错误
内存报错,基本都是和你的图片有问题脱不了干系
3.有的可能源码都会报错,那就把debug改成release试试
4.还有我的添加Path变量时,把系统变量上的个人变量也添加了这两个路径,不知道这个有没有影响。
5.其他错误可以留言讨论,
文章完全原创,版权归 优快云.我生有涯愿无尽 所有