一、系统环境变量配置
将opencv\build\x64\vc14\bin添加到系统环境变量
电脑重启应用环境变量
二、工程包含目录配置
选择win32控制台应用程序,打开属性管理器展开【Debug\Win32】双击Microsoft。Cpp.Win32.userDirectories
在通用属性下选择vc++目录中的包含目录,添加以下目录:
1、opencv\build\incude
2、opencv\build\incude\opencv
3、opencv\build\incude\opencv2
三、工程库目录配置
同上打开VC++目录中的库目录,添加以下目录:
1、opencv\build\x64\vc14\lib
四、链接库的配置
同上打开通用属性中的链接库下的输入选择附加依赖项,添加:
opencv_wolrd310d.lib//debug模式
opencv_world310.lib//release模式
五、测试
#include
using namespace cv;
void main()
{
//【1】读入一张图片
Matimg = imread("E:\\桌面个性化主题\\1.jpg");
//【2】在窗口中显示载入的图片
imshow("【载入的图片】",img);
//等待6000ms后窗口自动关闭
waitKey(6000);
}
此示例为打开一张图片并停留6000ms
六、我所遇到的报错
1、opencv_world310d.dll缺失报错
参考网上资料将opencv\build\x64\vc14\bin下内容复制到sysWOW后问题没有解决,再复制到windows32下,完美运行,如果依然找不到,看一下报错,是不是缺失310版本,若不是则是链接库输入错误。
2、找不到头文件
这个也是因为库配置问题导致的
七、测试结果
八、更多测试
1、图像腐蚀
#include
#include
using namespacecv;//包含cv命名空间
intmain()//控制台应用程序的入口函数
{
//载入原图
MatsrcImage = imread("E:\\My Project\\My Visual StudioProject\\OpenCV\\ImageProc\\5.jpg");
//显示原图
imshow("【原图】腐蚀操作",srcImage);
//进行腐蚀操作
Matelement = getStructuringElement(MORPH_RECT, Size(15, 15));
MatdstImage;
erode(srcImage,dstImage, element);
//显示效果图
imshow("【效果图】腐蚀操作",dstImage);
waitKey(0);
return0;
}
效果图
2、图像模糊
//-------------------------【头文件、命名空间包含部分】------------------------
// 描述:包含程序所使用的头文件和命名空间
//-----------------------------------------------------------------------------
#include
#include
using namespacecv;//包含cv命名空间
//-------------------------【常用函数】---------------------------
int fushi();
int mohu();
//----------------------------------------------------------------
int main()
{
//fushi();
mohu();
return0;
}
int mohu()
{
//【载入原图】
MatsrcImage = imread("E:\\My Project\\My Visual StudioProject\\OpenCV\\ImageProc\\4.jpg");
//【显示原图】
imshow("均值滤波【原图】",srcImage);
//【进行均值滤波操作
MatdstImage;
blur(srcImage,dstImage, Size(7, 7));
//【显示效果图】
imshow("均值滤波【效果图】",dstImage);
waitKey(0);
return0;
}
效果图
3、边缘检测
int bianyuan()
{
//【载入原始图】
MatsrcImage = imread("E:\\My Project\\My Visual StudioProject\\OpenCV\\ImageProc\\3.jpg");
imshow("【原始图】Canny边缘检测",srcImage);
//【1、转为灰度图像】
Matedge, grayImage;
cvtColor(srcImage,grayImage, CV_BGR2GRAY);
//【2、先使用3x3内核来降噪】
blur(grayImage,edge, Size(3, 3));
//【3、运行canny算子】
Canny(edge,edge, 3, 9, 3);
//【显示效果图】
imshow("【效果图】Canny边缘检测",edge);
waitKey(0);
return0;
}
效果图
4、视频操作
int shipin()
{
//【1、读入视频】
VideoCapturecapture("F:\\Users\\Administrator\\Pictures\\视频\\IMG_7283.MOV");
//【2、循环显示每一帧】
while(1)
{
Matframe;//定义一个Mat变量,用于存储每一帧的图像
capture>>frame;//读取当前帧
//若视频播放完成,则推出循环
if(frame.empty())
{
break;
}
imshow("【读取视频】",frame);//显示当前帧
waitKey(30);//延时30ms
}
return0;
}
效果图
【图片超过大小限制就不上传了】
相关函数:
Mat 结构体
Imread("文件位置");
Imshow("文件说明",指针);
waitKey(延时毫秒数,为0则按键触发停止);
Blur(初始图片指针,保存转换图片指针,规模)//均值滤波函数
getStructuringElement()//腐蚀操作函数
cvtColor(始地址, 保存地址,CV_BGR2GRAY);//灰度转换函数
Canny()//canny算法