OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)课件 第3章图形用户界面_第1页
OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)课件 第3章图形用户界面_第2页
OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)课件 第3章图形用户界面_第3页
OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)课件 第3章图形用户界面_第4页
OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)课件 第3章图形用户界面_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OpenCV计算机视觉基础教程(Python版)(慕课版)(第2版)主讲教师:_______第3章图形用户界面本章主要内容:窗口控制绘图处理鼠标事件使用滚动条3.1窗口控制本节主要内容:创建和关闭窗口调整窗口大小3.1.1创建和关闭窗口1.创建窗口dWindow()函数用于创建窗口,基本语法格式如下。参数说明如下。winname:窗口名称,字符串类型。flags:可选,窗口属性常量,用于指定窗口的行为。常用的窗口属性常量如下。cv2.WINDOW_NORMAL:常规窗口,可调整窗口大小。cv2.WINDOW_AUTOSIZE:默认值,根据图像大小自动调整窗口大小。

示例代码2.关闭窗口cv2.destroyAllWindows()函数用于关闭所有窗口,cv2.destroyWindow()函数用于关闭指定窗口示例代码如下。3.1.2调整窗口大小cv2.resizeWindow()函数用于调整窗口大小,基本语法格式如下。参数说明如下。winname:窗口名称,字符串类型。size:表示窗口大小的二元组。示例代码3.2绘图本节主要内容:绘制直线绘制矩形绘制圆绘制椭圆绘制多段绘制文本绘制箭头3.2.1绘制直线cv2.line()函数用于绘制直线,基本语法格式如下。参数说明如下。img:要在其上绘制直线的图像。pt1:直线的起点坐标(x1,y1)。pt2:直线的终点坐标(x2,y2)。color:直线的颜色,BGR格式。例如,(255,0,0)表示蓝色。thickness:可选,整数,直线的厚度,默认值为1,-1表示绘制填充图形。lineType:可选,整数,直线类型,常见的值如下。cv2.LINE_8(默认值):8连接直线。cv2.LINE_4:4连接直线。cv2.LINE_AA:抗锯齿直线,使直线更加平滑。shift:可选,整数,点坐标的小数位数。默认值为0,表示没有小数部分。示例代码3.2.2绘制矩形cv2.rectangle()函数用于绘制矩形,基本语法格式如下。

参数说明如下。img、color、thickness、lineType和shift等参数与cv2.line()函数中的含义一致。pt1:矩形的左上角顶点坐标(x1,y1)。pt2:矩形的右下角顶点坐标(x2,y2)。示例代码。3.2.3绘制圆cv2.circle()函数用于绘制圆,基本语法格式如下。参数说明如下。img、color、thickness、lineType和shift等参数与cv2.line()函数中的含义一致。center:圆心的坐标(x,y)。radius:圆的半径。示例代码。3.2.4绘制椭圆cv2.ellipse()函数用于绘制椭圆,基本语法格式如下。参数说明如下。img、color、thickness、lineType和shift等参数与cv2.line()函数中的含义一致。center:椭圆中心的坐标(x,y)。axes:椭圆主轴和次轴的长度(即椭圆的宽度和高度的一半),单位为px。例如,(100,50)表示主轴的长度为100px,次轴的长度为50px。angle:浮点数,椭圆的旋转角度(以°为单位)。正值表示逆时针旋转。startAngle:浮点数,椭圆弧的起始角度(以°为单位)。例如,0表示从主轴开始绘制椭圆。endAngle:浮点数,椭圆弧的结束角度(以°为单位)。例如,结束角度与起始角度的差值为360表示绘制完整椭圆。示例代码3.2.5绘制多段线cv2.polylines()函数用于绘制多段线,基本语法格式如下。参数说明如下。img、color、thickness、lineType和shift等参数与cv2.line()函数中的含义一致。pts:多段线各顶点坐标。isClosed:值为True时,绘制封闭的多边形。示例代码3.2.6绘制文本cv2.putText()函数用于绘制文本,基本语法格式如下。参数说明如下。img、color、thickness和lineType等参数与cv2.line()函数中的含义一致。text:要绘制的文本内容。org:文本的左下角位置,即文本的起点。fontFace:字体类型,常用值如下。cv2.FONT_HERSHEY_SIMPLEX:正常大小的sans-serif字体。cv2.FONT_HERSHEY_PLAIN:小号的sans-serif字体。cv2.FONT_HERSHEY_DUPLEX:较复杂的正常大小的sans-serif字体。cv2.FONT_HERSHEY_COMPLEX:正常大小的serif字体。cv2.FONT_HERSHEY_TRIPLEX:较复杂的正常大小的serif字体。cv2.FONT_HERSHEY_COMPLEX_SMALL:简化版正常大小的serif字体。cv2.FONT_HERSHEY_SCRIPT_SIMPLEX:手写风格字体。cv2.FONT_HERSHEY_SCRIPT_COMPLEX:较复杂的手写风格字体。cv2.FONT_ITALIC:斜体。fontScale:字体大小的缩放因子。值越大,字体越大。bottomLeftOrigin:文本方向,默认值为False;设置为True时,文本呈现垂直镜像效果。示例代码cv2.putText()函数不能在图像中绘制汉字,可使用Python图像库(PythonImagingLibrary,PIL)模块在图像中绘制汉字,示例代码如下。3.2.7绘制箭头cv2.arrowedLine()函数用于绘制箭头,基本语法格式如下。参数说明如下。img、color、thickness、lineType和shift等参数与cv2.line()函数中的含义一致。pt1:箭头的起点坐标(x1,y1)。pt2:箭头的终点坐标(x2,y2)。tipLength:可选,浮点数,箭头头部长度相对于箭头总长度的比例。默认值为0.1(即箭头头部长度占总长度的10%)。示例代码如下。3.3处理鼠标事件OpenCV可在用户触发鼠标事件时,调用回调函数完成事件处理。定义回调函数的基本语法格式如下,其中mouseCallback是自定义的函数名称。参数说明如下。event:调用时传递给函数的鼠标事件对象。x和y:触发鼠标事件时,鼠标指针在窗口中的坐标(x,y)。flags:触发鼠标事件时的鼠标或键盘操作,参数值可设置为下列常量。cv2.EVENT_LBUTTONDBLCLK:双击鼠标左键。cv2.EVENT_LBUTTONDOWN:按鼠标左键。cv2.EVENT_LBUTTONUP:释放鼠标左键。cv2.EVENT_MOUSEHWHEEL:滚动鼠标滚轮。cv2.EVENT_MOUSEMOVE:移动鼠标。cv2.EVENT_RBUTTONDBLCLK:双击鼠标右键。cv2.EVENT_RBUTTONDOWN:按鼠标右键。cv2.EVENT_RBUTTONUP:释放鼠标右键。cv2.EVENT_FLAG_ALTKEY:按【Alt】键。cv2.EVENT_FLAG_CTRLKEY:按【Ctrl】键。cv2.EVENT_FLAG_LBUTTON:按住鼠标左键不放并拖动鼠标。cv2.EVENT_FLAG_RBUTTON:按住鼠标右键不放并拖动鼠标。cv2.EVENT_FLAG_SHIFTKEY:按【Shift】键。param:传递给回调函数的其他数据。cv2.setMouseCallback()函数用于为图像窗口绑定用于处理鼠标事件的回调函数,基本语法格式如下。参数说明:wname:图像窗口的名称。mouseCallback:回调函数名称。3.4使用滚动条cv2.createTrackbar()函数用于在窗口中添加滚动条,滚动条通常用于动态调整参数值,如图像处理中的颜色值、亮度值、对比度值等。cv2.createTrackbar()函数基本语法格式如下。参数说明如下。trackbarName:滚动条的名称,在窗口中显示为滚动条标签。windowName:滚动条所属的窗口名称,指定窗口必须已经存在。value:滚动条的初始值。count:滚动条的最大值(最小值始终为0)。onChange:当滚动条的值发生变化时调用的回调函数。定义回调函数的基本语法格式如下。cv2.getTrackbarPos()函数用于获取滚动条的当前值,基本语法格式如下。参数说明如下。trackbarName:滚动条的名称。windowName:滚动条所属的窗口名称。示例代码3.5.1实验1:使用鼠标取点绘图1.实验目的掌握在图像窗口中处理鼠标事件和绘制图形的基本方法。2.实验内容

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论