计算机视觉图像编程入门课件.ppt
《计算机视觉图像编程入门课件.ppt》由会员分享,可在线阅读,更多相关《计算机视觉图像编程入门课件.ppt(50页珍藏版)》请在三一办公上搜索。
1、计算机视觉第1章 图像编程入门,邹昆,主要内容:安装OpenCV库读取、显示和存储图像深入理解cv:Mat数据结构定义ROI区域(感兴趣区域),第1章 图像编程入门,2,访问OpenCV官方网站http:/opencv.org,1.安装OpenCV库,下载OpenCV 3.4.2(Win pack),3,下载exe后,运行解压,内有文件夹:build文件夹:内有编写OpenCV程序所需要的头文件、lib文件和dll文件Include文件夹:内有OpenCV库头文件x64文件夹(针对64位应用程序):vc14文件夹:内有针对VS2015的lib文件(位于lib文件夹下)和dll文件(位于bin文
2、件夹下)vc15文件夹:内有针对VS2017的lib文件(位于lib文件夹下)和dll文件(位于bin文件夹下)较新版本的OpenCV库只提供了针对VS2015和VS2017的64位库,如果需要针对其他VS版本的库或是32位库,需要利用提供的源码,自行编译生成相应版本的库sources文件夹:OpenCV源文件,如果需要生成其他版本的lib和dll文件,则需要利用这些源文件,使用cmake生成相应版本的VS项目,并编译运行,1.安装OpenCV库,4,将OpenCV库的dll文件路径添加到环境变量Path中(需要重启或注销一下),这样OpenCV程序运行时才能够找到这些dll,1.安装Open
3、CV库,5,从OpenCV 3开始,OpenCV库分为两个主要部分:第一部分是成熟的OpenCV API库,或称为标准库;第二部分是近期加入的OpenCV算法库(contrib模块)。官方下载的OpenCV库只包含第一部分的库,如果要使用一些更先进的算法,就需要下载contrib模块,并自行编译生成OpenCV库自行编译OpenCV库的方法请参照OpenCV安装配置指南,1.安装OpenCV库,6,使用Visual Studio创建空的Win32控制台应用程序,2 创建工程及相关设置,7,项目属性设置VC+目录添加包含目录添加库目录注意:opencv文件夹的位置取决于你的解压路径库目录的设置以
4、VS2012为例(vc11),VS2013为vc12,VS2015为vc14,VS2017为vc15,2 创建工程及相关设置,8,项目属性设置(续)链接器输入添加附加依赖项注意:图中以OpenCV 3.4.2版本和Debug配置为例在之前添加的库目录下,我们会看到很多lib文件,其中以d结尾的为针对Debug的版本,其他是针对Release的版本,2 创建工程及相关设置,9,OpenCV 模块OpenCV库分为多个模块,其中常用的模块有:opencv_core模块,包含了程序库的核心功能,特别是基本的数据结构和算法函数;opencv_highgui模块,包含图像、视频读写函数和部分用户界面函数
5、;opencv_imgproc模块,包含了主要的图像处理函数;,2 创建工程及相关设置,10,OpenCV 模块(续)每个模块都有一个对应的头文件(位于include目录中),因此在使用这些模块时,需要在程序中包含对应的头文件,例如:#include#include#include 注:其实core.hpp已经在highgui.hpp中已包含了,可不用写出来,2 创建工程及相关设置,11,什么是数字图像?,3 数字图像,12,真彩图像,3 数字图像,13,图像可以定义为二维函数 f(x,y)x,y空间(平面)坐标f 强度或灰度x,y,f 均为有限、离散量该图像为数字图像数字图像处理:用计算机处
6、理数字图像像素(Pixel):数字图像中的元素,3 数字图像,14,图像坐标系统,3 数字图像,在数字图像处理中,传统上使用原点(u=0,v=0)位于左上角的坐标系,坐标u、v分别代表图像的列和行。对于一幅尺寸为MN的图像,最大的列索引是umax=M-1,最大的行索引是vmax=N-1,15,任务:从文件中读取一幅输入图像,在窗口中显示图像,应用一个处理函数,然后把输出图像存储到磁盘。准备工作:创建一个空的控制台应用程序,并按照之前的方法设置项目属性,并添加一个cpp文件编写程序:头文件包含:#include/核心库(可省略)#include/GUI库,4 读取、显示和存储图像,16,编写程序
7、(续):main函数:首先定义一个图像类变量:cv:Mat image;/创建一个空图像(尺寸为00)通过访问cv:Mat的属性来验证该图像大小:std:cout 此时运行下程序看看 看不到结果,闪退了?Ctrl+F5试试,4 读取、显示和存储图像,17,编写程序(续):找一图像文件放到项目文件夹下,将其读入到程序:image=cv:imread(puppy.bmp);检查读取是否成功:if(image.empty()/图像为空?std:cout 读取图像失败!std:endl;exit(EXIT_FAILURE);/退出程序 定义窗口并显示图像:cv:namedWindow(“原始图像”);
8、/创建窗口(可省)cv:imshow(“原始图像”,image);/显示图像,4 读取、显示和存储图像,窗口名,窗口名,图像对象,如果imshow中指定的窗口之前未定义,则会自动创建该窗口,18,编写程序(续):运行下看看,能看到窗口么?Ctrl+F5管用不?增加一个额外的highgui函数,需要用户按键才能结束程序:/0或缺省表示永远地等待按键,正数表示等待指定的毫秒数 cv:waitKey(0);Try again!用不用Ctrl+F5已不重要,4 读取、显示和存储图像,19,编写程序(续):对图像进行处理,以将图像水平翻转为例,以下代码加在waitKey之前:cv:Mat result;
9、/创建另一个空的图像/水平翻转图像 cv:flip(image,/输入图像 result,/输出图像 1);/正数表示水平翻转,0表示垂直翻 转,负数表示水平和垂直同时翻转flip函数输出图像参数也可设为和输入图像相同,这样输入图像将被修改,4 读取、显示和存储图像,20,编写程序(续):在另一个窗口中显示处理结果,这次我们不事先定义窗口:cv:imshow(输出图像,result);运行下看看,同时测试下flip第3个参数取不同值的情况,4 读取、显示和存储图像,21,编写程序(续):把处理过的图像存储到磁盘里:cv:imwrite(output.bmp,result);图像的格式由文件名后
10、缀决定测试下看看图像是否成功保存注意:当在程序中使用相对路径名时,如果通过VS运行,当前目录为项目文件所在目录如果双击exe运行,当前目录为exe所在目录,4 读取、显示和存储图像,文件路径名,图像对象,22,实现原理:在OpenCV的C+API中,所有类和函数都在命名空间cv内定义。我们有两种方法可以访问它们:第一种方法是在定义main函数前使用如下声明:using namespace cv;第二种方法是使用命名空间规范给所有OpenCV的类和函数加上前缀cv:,使用前缀可让OpenCV的类和函数更容易识别。,4 读取、显示和存储图像,23,实现原理:在使用imread函数装载图像时,可以通
11、过设置选项把它转为灰度图像,有些计算机视觉算法是必须使用灰度图像的 image=cv:imread(puppy.bmp,cv:IMREAD_GRAYSCALE);这样生成的图像由无符号字节(C+中为unsigned char)构成,OpenCV中用定义的常量CV_8U表示。Have a try!,4 读取、显示和存储图像,24,实现原理:对于灰度图像,有时仍需要在读入时把它转换成三通道彩色图像:image=cv:imread(puppy.bmp,cv:IMREAD_COLOR);此情况为默认情况这样创建的图像中每个像素有3字节,OpenCV中用CV_8UC3表示。如果输入的图像文件是灰度图像,
12、这三个通道值相同,4 读取、显示和存储图像,25,实现原理:如果想读入图像时不改变图像的格式,则:image=cv:imread(puppy.bmp,cv:IMREAD_UNCHANGED);可用channels方法检查图像的通道数:std:cout 该图像有 image.channels()通道 std:endl;,4 读取、显示和存储图像,26,实现原理:highgui模块非常适合构建原型程序,在生成最终版本的程序时,你很可能会用到IDE提供的GUI模块,这样会让程序看起来更专业扩展:highgui模块中可设置鼠标回调函数,对鼠标事件进行响应,也可在图像上绘制图形或写入文本,4 读取、显示
13、和存储图像,27,扩展1:鼠标回调函数的使用鼠标回调函数原型:void onMouse(int event,/事件类型int x,int y,/鼠标位置int flags,/事件发生时按下了鼠标哪个键void*param/设置回调函数时指定的参数);event取值:cv:EVENT_LBUTTONDOWN,cv:EVENT_LBUTTONUP,cv:EVENT_MOUSEMOVE等等,4 读取、显示和存储图像,28,扩展1:鼠标回调函数的使用(续)实现鼠标左键单击时在命令控制台输出点击位置的像素值(暂时针对灰度图)定义鼠标回调函数:void onMouse(int event,int x,in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 视觉 图像 编程 入门 课件
链接地址:https://www.31ppt.com/p-3258206.html