【学习OpenCV4】随机数的使用与随机线条的生成
C和C++中提供了rand() 和srand()函数用于产生随机数,使用C++编写OpenCV代码时也可以使用。同时OpenCV自身也提供了生成随机数的类RNG,使用起来也十分方便,本文主要介绍RNG的使用方法,以及基于RNG生成的随机数,绘制随机线条的方法。
记录机器人、视觉和系统开发中的问题与经验。
C和C++中提供了rand() 和srand()函数用于产生随机数,使用C++编写OpenCV代码时也可以使用。同时OpenCV自身也提供了生成随机数的类RNG,使用起来也十分方便,本文主要介绍RNG的使用方法,以及基于RNG生成的随机数,绘制随机线条的方法。
本文介绍了使用C++与OpenCV4完成矩形、圆形、直线、椭圆的绘制方法,重点总结了OpenCV内置函数(如rectangle()、circle()、line()、ellipse())的定义以及各参数的作用,并给出了示例程序作为参考。此外本文还总结了多边形的绘制方法,包括多边形边框的绘制函数polylines()、多边形填充函数fillPoly()、绘制多个多边形的函数drawContours()等。
绿幕图像的背景替换需要经历①色彩空间转换、②提取绿幕区域、③反转绿幕区域、④复制图像,其中遇到的各种函数和代码也都在本文有详细介绍。
图像通道的分离后输出的多通道序列一般使用 std::vector mv; 来存储,mv[0]、mv[1]、mv[2]、分别对应BGR三个通道。但是现在显示的相当于是三张单通道的图像,也就相当于三张灰度图像。要想让三张图像恢复直观意义上的色彩,就需要使用下面通道合并的方法了。
OpenCV中使用 createTrackbar() 来创建滚动条,函数的使用方法如下,各个参数的作用也在下面的表格中给出。
图像的像素操作包括读写操作、算数操作、逻辑运算操作等。像素的操作方式不仅多样,对于灰度图的操作和对彩色图的操作也有各自的特点。对像素点的操作可以使我们访问图像的每一个像素点,实现许多意想不到的功能。
色彩空间转换函数:cvtColor。GRAY:指灰度,只有一个参数灰度值Channel。BGR:指BGR颜色空间,以红绿蓝三基色(0~255)为基础,叠加形成各种颜色。HSV:指六角椎体模型,色调Hue用角度度量(0~180),饱和度Saturation(0 ~ 255),亮度Value(0 ~ 255)。
首先下载并解压OpenCV。建议到opencv的官网下载windows版本的安装包。如果觉得下载速度过慢,我也把opencv4.5.2安装包上传了阿里云https://www.aliyundrive.com/s/VGkaM7vyuck 注意解压的路径,一定要是一个英文路径
状态机是在工程应用中使用最多的设计模型。使用状态机,我们可以很容易的实现程序流程图中的判断、分支。Labview状态机是由一个While循环、一个条件结构和一个移位寄存器组成的。
状态机是在工程应用中使用最多的设计模型。使用状态机,我们可以很容易的实现程序流程图中的判断、分支。Labview状态机是由一个While循环、一个条件结构和一个移位寄存器组成的。