04 2023 档案

摘要://运算符重载operator+()等 #ifndef MYTIME_H_ #define MYTIME_H_ class Time { public: Time(); Time(int h, int m = 0); void AddMin(int m); void AddHr(int n); vo 阅读全文
posted @ 2023-04-16 17:23 夏蝉沐雪 阅读(12) 评论(0) 推荐(0) 编辑
摘要:一、类的声明 //global.h -- define for all project //version 0.0 #ifndef GLOBAL_H_ //防止重定义 #define GLOBAL_H_ class Global //定义类 { public: //使用类对象的程序都可以直接访问公有 阅读全文
posted @ 2023-04-14 17:34 夏蝉沐雪 阅读(24) 评论(0) 推荐(0) 编辑
摘要:一、基本概念 1、MATALAB主要数据类型 2、整数类型 MATLAB中提供了8种内置的整数类型,如下: 由于MATLAB中数值的默认存储类型是双精度浮点类型,因此必须通过表2-1中列出的转换函数将双精度浮点数值转换成指定的整数类型。 在转换中,MATLAB默认将待转换数值转换为最近的整数,若小数 阅读全文
posted @ 2023-04-12 18:15 夏蝉沐雪 阅读(155) 评论(0) 推荐(0) 编辑
摘要:1、加载深度学习模型 深度学习中最重要的部分就是对模型的训练,模型训练完成后就可以使用模型对新数据进行处理,例如识别图像中的物体、对图像中的人脸进行识别等。由于训练模型既耗费时间又容易失败,因此在实际使用过程中可以直接已有的模型,没必要每次都重新训练模型。OpenCV 4中提供了dnn::readN 阅读全文
posted @ 2023-04-11 17:40 夏蝉沐雪 阅读(185) 评论(0) 推荐(0) 编辑
摘要:图像修复技术就是利用图像中损坏区域边缘的像素,根据像素值的大小以及像素间的结构关系,估计出损坏区域可能的像素排列,从而去除图像中受污染的区域。图像修复不仅可以去除图像中得“划痕”,还可以去除图像中得水印、日期等。OpenCV 4提供了能够对含有较少污染或者水印的图像进行修复的inpaint()函数, 阅读全文
posted @ 2023-04-11 17:32 夏蝉沐雪 阅读(73) 评论(0) 推荐(0) 编辑
摘要:1、Grabcut图像分割 代码清单8-21 grabCut()函数原型 void cv::grabCut(InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fg 阅读全文
posted @ 2023-04-11 17:28 夏蝉沐雪 阅读(153) 评论(0) 推荐(0) 编辑
摘要:二维码被广泛的应用在我们日常生活中,比如微信和支付宝支付、火车票、商品标识等。二维码的出现极大的方便了我们日常的生活,同时也能将信息较为隐蔽的传输。二维码种类多种多样,有QR Code、Data Matrix、Code One等,日常生活中常用的二维码是QR二维码,该二维码样式以及每部分的作用在图7 阅读全文
posted @ 2023-04-11 16:58 夏蝉沐雪 阅读(240) 评论(0) 推荐(0) 编辑
摘要:矩是描述图像特征的算子,被广泛用于图像检索和识别、图像匹配、图像重建、图像压缩以及运动图像序列分析等领域。本节中将介绍几何矩与Hu矩的计算方法以及应用Hu矩实现图像轮廓的匹配。 1、几何矩与中心矩 OpenCV 4提供了计算图像矩的moments()函数,该函数的函数原型在代码清单7-28中给出。 阅读全文
posted @ 2023-04-11 16:54 夏蝉沐雪 阅读(226) 评论(0) 推荐(0) 编辑
摘要:1、轮廓的发现与绘制 代码清单7-11 findContours()函数原型1 1. void cv::findContours(InputArray image, 2. OutputArrayOfArrays contours, 3. OutputArray hierarchy, 4. int m 阅读全文
posted @ 2023-04-11 15:20 夏蝉沐雪 阅读(89) 评论(0) 推荐(0) 编辑
摘要:OpenCV 4中提供了利用最小二乘M-estimator方法拟合直线的fitLine()函数,该函数的函数原型在代码清单7-7中给出。 代码清单7-7 fitLine()函数原型 1. void cv::fitLine(InputArray points, 2. OutputArray line, 阅读全文
posted @ 2023-04-11 15:09 夏蝉沐雪 阅读(239) 评论(0) 推荐(0) 编辑
摘要:1、图像腐蚀 图像的腐蚀过程与图像的卷积操作类似,都需要模板矩阵来控制运算的结果,在图像的腐蚀和膨胀中这个模板矩阵被称为结构元素。与图像卷积相同,结构元素可以任意指定图像的中心点,并且结构元素的尺寸和具体内容都可以根据需求自己定义。定义结构元素之后,将结构元素的中心点依次放到图像中每一个非0元素处, 阅读全文
posted @ 2023-04-11 14:37 夏蝉沐雪 阅读(93) 评论(0) 推荐(0) 编辑
摘要:图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包含一个像素值,因此为了防止像 阅读全文
posted @ 2023-04-11 14:22 夏蝉沐雪 阅读(615) 评论(0) 推荐(1) 编辑
摘要:图像中两个像素之间的距离有多种定义方式,图像处理中常用的距离有欧式距离、街区距离和棋盘距离,本节中将重点介绍这三种距离的定义方式,以及如何利用两个像素间的距离来描述一幅图像。 1、欧式距离,两个像素点之间的直线距离。与直角坐标系中两点之间的直线距离求取方式相同,分别计算两个像素在X方向和Y方向上的距 阅读全文
posted @ 2023-04-11 14:10 夏蝉沐雪 阅读(457) 评论(0) 推荐(0) 编辑
摘要:1、边缘检测原理 图像的边缘指的是图像中像素灰度值突然发生变化的区域,如果将图像的每一行像素和每一列像素都描述成一个关于灰度值的函数,那么图像的边缘对应在灰度值函数中是函数值突然变大的区域。函数值的变化趋势可以用函数的导数描述。当函数值突然变大时,导数也必然会变大,而函数值变化较为平缓区域,导数值也 阅读全文
posted @ 2023-04-11 14:01 夏蝉沐雪 阅读(223) 评论(0) 推荐(0) 编辑
摘要:1、均值滤波 代码清单5-8 blur()函数原型 void cv::blur(InputArray src, OutputArray dst, Size ksize, Point anchor = Point(-1,-1), int borderType = BORDER_DEFAULT ) 待均 阅读全文
posted @ 2023-04-11 12:00 夏蝉沐雪 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1、图像中加入椒盐噪声 椒盐噪声又被称作脉冲噪声,它会随机改变图像中的像素值,是由相机成像、图像传输、解码处理等过程产生的黑白相间的亮暗点噪声,其样子就像在图像上随机的撒上一些盐粒和黑椒粒,因此被称为椒盐噪声。考虑到椒盐噪声会随机产生在图像中的任何一个位置,因此对于椒盐噪声的生成需要使用到OpenC 阅读全文
posted @ 2023-04-11 11:30 夏蝉沐雪 阅读(397) 评论(0) 推荐(0) 编辑
摘要:模板匹配常用于在一幅图像中寻找特定内容的任务中。由于模板图像的尺寸小于待匹配图像的尺寸,同时又需要比较两张图像中的每一个像素的灰度值,因此常采用在待匹配图像中选择与模板相同尺寸的滑动窗口,通过比较滑动窗口与模板的相似程度,判断待匹配图像中是否含有与模板图像相同的内容,其原理如图: 右侧4×4的图像是 阅读全文
posted @ 2023-04-11 11:25 夏蝉沐雪 阅读(292) 评论(0) 推荐(0) 编辑
摘要:1、图像直方图绘制 图像直方图是图像处理中非常重要的像素统计结果,图像直方图不再表征任何的图像纹理信息,而是对图像像素的统计。由于同一物体无论是旋转还是平移在图像中都具有相同的灰度值,因此直方图具有平移不变性、放缩不变性等优点,因此可以用来查看图像整体的变化形式,例如图像是否过暗、图像像素灰度值主要 阅读全文
posted @ 2023-04-11 11:13 夏蝉沐雪 阅读(182) 评论(0) 推荐(0) 编辑
摘要:1、创建图像窗口滑动条 代码清单3-54 createTrackbar()函数原型 1. int cv::createTrackbar(const String & trackbarname, 2. const String & winname, 3. int * value, 4. int cou 阅读全文
posted @ 2023-04-10 17:56 夏蝉沐雪 阅读(85) 评论(0) 推荐(0) 编辑
摘要:1、高斯金字塔 构建图像的高斯金字塔是解决尺度不确定性的一种常用方法。高斯金字塔是指通过下采样不断的将图像的尺寸缩小,进而在金字塔中包含多个尺度的图像,高斯金字塔的形式如图3-30所示,一般情况下,高斯金字塔的最底层为图像的原图,每上一层就会通过下采样缩小一次图像的尺寸,通常情况尺寸会缩小为原来的一 阅读全文
posted @ 2023-04-10 17:38 夏蝉沐雪 阅读(69) 评论(0) 推荐(0) 编辑
摘要:1、绘制圆形 代码清单3-40 circle()函数原型 1. void cv::circle(InputOutputArray img, 2. Point center, 3. int radius, 4. const Scalar & color, 5. int thickness = 1, 6 阅读全文
posted @ 2023-04-10 16:40 夏蝉沐雪 阅读(104) 评论(0) 推荐(0) 编辑
摘要:极坐标变换就是将图像在直角坐标系与极坐标系中互相变换,形式如图3-26所示,它可以将一圆形图像变换成一个矩形图像,常用于处理钟表、圆盘等图像。圆形图案边缘上的文字经过及坐标变换后可以垂直的排列在新图像的边缘,便于对文字的识别和检测。 代码清单3-38 warpPolar()函数原型 1. void 阅读全文
posted @ 2023-04-10 16:31 夏蝉沐雪 阅读(766) 评论(0) 推荐(0) 编辑
摘要:透视变换是按照物体成像投影规律进行变换,即将物体重新投影到新的成像平面,示意图如图所示。透视变换常用于机器人视觉导航研究中,由于相机视场与地面存在倾斜角使得物体成像产生畸变,通常通过透视变换实现对物体图像的校正。透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3×3的矩阵变换矩阵表示, 阅读全文
posted @ 2023-04-10 16:27 夏蝉沐雪 阅读(383) 评论(0) 推荐(0) 编辑
摘要:在OpenCV 4中并没有专门用于图像旋转的函数,而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确定旋转角度和旋转中心,之后确定旋转矩阵,最终通过仿射变换实现图像旋转。针对这个流程,OpenCV 4提供了getRotationMatrix2D()函数用于计算旋转矩阵和warpAffin 阅读全文
posted @ 2023-04-10 16:11 夏蝉沐雪 阅读(90) 评论(0) 推荐(0) 编辑
摘要:1、压缩文件案的用途与技术常见的压缩文件案扩展名: *.Z compress程序压缩档案(过时,不学); *.gz gzip程序压缩文案; *.bz2 bzip2程序压缩文案; *.tar tar程序打包的数据,并没有压缩过; *.tar.gz tar程序打包的档案,并经过gzip的压缩; *.ta 阅读全文
posted @ 2023-04-10 10:46 夏蝉沐雪 阅读(68) 评论(0) 推荐(0) 编辑
摘要:前面介绍的阈值比较方法中只有一个阈值,如果需要与多个阈值进行比较,就需要用到显示查找表(Look-Up-Table,LUT)。LUT查找表简单来说就是一个像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。例如我们有一个长度为5的存放字符的数组,LUT查找表就是通过这个数 阅读全文
posted @ 2023-04-09 13:40 夏蝉沐雪 阅读(201) 评论(0) 推荐(0) 编辑
摘要:threshold()函数 代码清单3-17 threshold()函数原型 1. double cv::threshold(InputArray src, 2. OutputArray dst, 3. double thresh, 4. double maxval, 5. int type 6. 阅读全文
posted @ 2023-04-09 13:28 夏蝉沐雪 阅读(185) 评论(0) 推荐(0) 编辑
摘要:1、两张图像的比较运算 OpenCV 4中提供了求取两张图像每一位像素较大或者较小灰度值的max()、min()函数,这两个函数分别比较两个图像中每一位元素灰度值的大小,保留较大(较小)的灰度值,这两个函数的函数原型在代码清单3-13中给出。 代码清单3-13 max()和min()函数原型 1. 阅读全文
posted @ 2023-04-09 13:18 夏蝉沐雪 阅读(121) 评论(0) 推荐(0) 编辑
摘要:1、寻找图像最值 代码清单3-7 minMaxLoc()函数原型 1. void cv::minMaxLoc(InputArray src, 2. double * minVal, 3. double * maxVal = 0, 4. Point * minLoc = 0, 5. Point * m 阅读全文
posted @ 2023-04-09 13:10 夏蝉沐雪 阅读(108) 评论(0) 推荐(0) 编辑
摘要:在图像颜色模型中不同的分量存放在不同的通道中,如果我们只需要颜色模型的某一个分量,例如只需要处理RGB图像中的红色通道,可以将红色通道从三通道的数据中分离出来再进行处理,这种方式可以减少数据所占据的内存,加快程序的运行速度。同时,当我们分别处理完多个通道后,需要将所有通道合并在一起重新生成RGB图像 阅读全文
posted @ 2023-04-09 12:55 夏蝉沐雪 阅读(144) 评论(0) 推荐(0) 编辑
摘要:本小节中将介绍几种OpenCV 4中能够互相转换的常见的颜色模型,例如RGB模型、HSV模型、Lab模型、YUV模型以及GRAY模型,并介绍这几种模型之间的数学转换关系,以及OpenCV 4中提供的这几种模型之间的变换函数。 1、RGB颜色模型 RGB颜色模型的命名方式是采用三种颜色的英文首字母组成 阅读全文
posted @ 2023-04-09 11:30 夏蝉沐雪 阅读(437) 评论(0) 推荐(0) 编辑
摘要:除了图像数据之外,有时程序中的尺寸较小的Mat类矩阵、字符串、数组等数据也需要进行保存,这些数据通常保存成XML文件或者YAML文件。本小节中将介绍如何利用OpenCV 4中的函数将数据保存成XML文件或者YAML文件以及如何读取这两种文件中的数据。XML是一种元标记语言,所谓元标记就是使用者可以根 阅读全文
posted @ 2023-04-09 10:52 夏蝉沐雪 阅读(115) 评论(0) 推荐(0) 编辑
摘要:1、视频数据读取 虽然视频文件是由多张图片组成的,但是imread()函数并不能直接读取视频文件,需要由专门的视频读取函数进行视频读取,并将每一帧图像保存到Mat类矩阵中,代码清单2-27中给出了VideoCapture类在读取视频文件时的构造方式。 代码清单2-27 读取视频文件VideoCapt 阅读全文
posted @ 2023-04-09 10:43 夏蝉沐雪 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1、图像读取函数imread() 代码清单2-24 imread()函数的原型 cv::Mat cv::imread(const String & filename, int flags=IMREAD_COLOR ) filename:需要读取图像的文件名称,包含图像地址、名称和图像文件扩展名 fl 阅读全文
posted @ 2023-04-08 22:37 夏蝉沐雪 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1、Mat类常用属 属性 作用 cols 矩阵的列数 rows 矩阵的行数 step 以字节为单位的矩阵的有效宽度 elemSize() 每个元素的字节数 total() 矩阵中元素的个数 channels() 矩阵的通道数 2、通过at方法读取Mat类矩阵中的元素 通过at方法读取矩阵元素分为针对 阅读全文
posted @ 2023-04-08 15:27 夏蝉沐雪 阅读(171) 评论(0) 推荐(0) 编辑
摘要:在进行数据处理时需要对数据进行加减乘除运算,Mat类变量支持矩阵的加减乘除运算,代码清单如2-17 代码清单2-17 Mat类的加减法运算 cv::Mat a = (cv::Mat_<int>(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); cv::Mat b = (cv: 阅读全文
posted @ 2023-04-07 17:59 夏蝉沐雪 阅读(61) 评论(0) 推荐(0) 编辑
摘要:一、Mat类的构造 1、利用默认构造函数 通过代码清单2-4,利用默认构造函数构造了一个Mat类,这种构造方式不需要输入任何的参数,在后续给变量赋值的时候会自动判断矩阵的类型与大小,实现灵活的存储,常用于存储读取的图像数据和某个函数运算输出结果。 代码清单2-4 默认构造函数使用方式 cv::Mat 阅读全文
posted @ 2023-04-07 17:10 夏蝉沐雪 阅读(457) 评论(0) 推荐(0) 编辑
摘要:Mat类用来保存矩阵类型的数据信息,包括向量、矩阵、灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。矩阵头中包含矩阵的尺寸、存储方法、地址和引用次数等。矩阵头的大小是一个常数,不会随着矩阵尺寸大小而改变。在绝大多数情况下矩阵头大小远小于矩阵中数据量的大小,因此图像复制和传递过 阅读全文
posted @ 2023-04-07 16:40 夏蝉沐雪 阅读(128) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示