01 2022 档案
摘要:多边形近似 API approxPolyDP(curve, approxCurve, epsilon, closed) curve:输入像素轮廓点,类型为vector<Point>或者Mat approxCurve:多边形逼近结果,以多边形顶点坐标的形式给出,类型为 vector<Point2f>
阅读全文
摘要:轮廓拟合 简介 由于噪声和光照的影响,物体的轮廓会出现不规则的形状,不规则的轮廓形状不利于对图像内容进行分析,此时需要将物体的轮廓拟合成规则的几何形状,根据需求可以将图像轮廓拟合成矩形、多边形等 矩形 最大外接矩形 Rect cv::boundingRect(IuputArray array) ar
阅读全文
摘要:轮廓的基本属性 面积 简介 轮廓面积是指每个轮廓中所有的像素点围成区域的面积,单位为像素 通过轮廓面积的大小可以进一步分析每个轮廓隐含的信息,例如通过轮廓面积区分物体大小、识别不同的物体等 API OpenCV 4 提供了contourArea()函数用于统计轮廓像素点围成区域的面积 double
阅读全文
摘要:轮廓检测 简介 图像轮廓是指图像中对象的边界,是图像目标的外部特征 通常,特定轮廓是指具有相同颜色和强度的边界像素 使用轮廓检测,我们可以检测物体的边界,并在图像中轻松定位它们。它通常是许多有趣应用的第一步,例如图像前景提取、简单的图像分割、检测和识别 在OpenCV中使用轮廓检测,只需按照以下步骤
阅读全文
摘要:ROI 简介 有时,我们只对一幅图像中的部分区域感兴趣,而原图像又十分大,如果带着非感兴趣区域一次处理,就会对程序的内存造成负担,因此,我们希望从原始图像中截取部分图像后再进行处理。我们将这个区域称作感兴趣区域(Region of Internet,ROI)。 从原图中截取部分内容,就是将需要截取的
阅读全文
摘要:多边形填充与绘制 绘制 polylines(img, pts, isClosed, color, thickness) pts:多边形顶点数组,存放每个多边形的顶点坐标 isClosed:多边形是否闭合的标志,true表示闭合 color:多边形颜色,类型为 Scalar thickness:多边形
阅读全文
摘要:绘制圆形 circle(img, center, radius, color, thickness) img:需要绘制的图像 center:圆形的圆心位置坐标 radius:圆形的半径,单位为像素 color:圆形的颜色 thickness:轮廓的粗细,若为负值,则绘制一个实心圆 绘制矩形 // 原
阅读全文
摘要:形态学操作 简介 在有些情况下,相比于图像中物体的纹理信息,物体的形状与位置信息对我们更加重要,因此可以将物体的内部信息忽略,以形态为基础对图像进行描述和分析 图像形态学用具有一定形态的结构元素度量和提取图像中的对应形状,以达到对图像分析和识别的目的 简而言之:一组基于形状处理图像的操作。 形态学操
阅读全文
摘要:边缘检测 简介 边缘检测是一种图像处理技术,用于识别对象的边界(边缘)或图像中的区域 图像的边缘指的是图像中像素灰度值突然发生变化的区域 图像的边缘有可能是由高像素值变为低像素值,也有可能是由低像素值变成高像素值,因此通过计算得到的边缘信息会有正数值和负数值。为了在图像中同时表示出这两种边缘信息,需
阅读全文
摘要:图像滤波 简介 “平滑处理”(smoothing)也称 “模糊处理”(bluring),是一项简单且使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分辨率时,平滑处理是非常好用的方法 图像滤波,就是在尽量保留图像细节特征的条件下对目标图像的噪
阅读全文
摘要:位操作 逻辑门 简介 逻辑门(Logic Gates)是在集成电路(Integrated Circuit)上的基本组件。简单的逻辑门可由晶体管组成。这些晶体管的组合可以使代表两种信号的高低电平在通过它们之后产生高电平或者低电平的信号。高、低电平可以分别代表逻辑上的“真”与“假”或二进制当中的1和0,
阅读全文
摘要:图像二值化 简介 图像二值化就是将图像像素的灰度值设置成只有最大值和最小值两种取值,使整个图像呈现出 “非黑即白” 的效果,是最简单的图像分割的方法 应用举例:从一副图像中利用阈值分割出我们需要的物体部分(当然这里的物体可以是一部分或者整体)。这样的图像分割方法是基于图像中物体与背景之间的灰度差异,
阅读全文
摘要:多通道分离与合并 分离 函数split()用于将多通道的图像分离成若干单通道的图像 split(const Mat & src, Mat * mvbegin) // 原型一 split(IuputArray m, OutputArrayOfArrays mv) // 原型二 src:待分离的多通道图
阅读全文
摘要:图像色彩空间转换 cv::cvtColor() cv::cvtColor()函数用于将图像从一个颜色空间转换为另一个颜色空间,并将转化之后的结果通过值返回 cv::cvtColor(src, dst, code) scr:待转化颜色空间的图像 dst:颜色空间转化后的目标图像 code:颜色空间转化
阅读全文
摘要:常用色彩空间 色彩空间是指我们如何组合颜色分量以编码给定的颜色 RGB 简介 RGB颜色空间是一种加法色彩空间,其中颜色是通过红色、绿色和蓝色值的线性组合获得的。这三个通道通过撞击表面的光量相关联 在 RGB 颜色空间的基础上增加第四个通道 Alpha (表示颜色的透明度),就会形成 RGBA 颜色
阅读全文
摘要:API 此处,使用#include指令包含 opencv.hpp 头文件,实际上,它包含所有的 OpenCV 头文件。通过包含单个该文件,不再需要包含其他文件 所有的 OpenCV 类和函数都在cv命名空间中,因此,在源代码中需使用cv::前缀或using namespace cv编译语句 #inc
阅读全文
摘要:at方法 基于Mat对象的随机像素访问API实现,通过行列索引方式遍历每个像素值 void method_1(Mat & img) { int h = img.cols; int w = img.rows; for (int row = 0; row < w; row++) { for (int c
阅读全文
摘要:Mat类 简介 Mat类用来保存矩阵类型的数据信息,包括向量、矩阵、灰度或彩色图像等数据。 Mat类分为矩阵头(元数据)和指向存储数据的矩阵指针两部分。矩阵头中包含矩阵的尺寸、存储类型、地址和引用次数等。矩阵头的大小是一个常数,不会随着矩阵尺寸的大小而改变 构造 常用 cv::Mat() cv::M
阅读全文
摘要:OpenCV 简介 OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程
阅读全文
摘要:在这个小测验里,我让你们求一个2x3矩阵的行列式。 让我感到非常可笑的是,你们当中竟然有人尝试去做。 ——摘自mathprofessorquotes.com,作者佚名 讨论不同维数之间的变换是完全合理的,比如一个二维向量到三维向量的变换 同之前一样,如果网格线保持平行且等距分布,并且原点映射为自身,
阅读全文
摘要:引言 硬件和软件的区别是什么? 硬件是看的见摸得着的设备,比如计算机主机、显示器、键盘等。而软件是计算机所执行的程序,即指令和数据。软件本身是看不见的。 硬件(Hardware)代表 “硬的东西” ,而软件(Software)代表 “软的东西” 。是硬的还是软的取决于眼睛能否看得到,或者实际上能否用
阅读全文
摘要:提出正确的问题比回答它更困难。 —格奥尔格‧康托尔 逆矩阵 线性代数能用来描述对空间的操纵,这对计算机图形学和机器人学很有用。但是线性代数在几乎所有技术领域中都有所体现,并被广泛应用的一个主要原因是,它能帮助我们求解特定的方程组 当我说 “方程组” 时,我是在说你有一系列未知量和一系列与之相关的
阅读全文