首页 > 编程知识 正文

opencv在图像上画矩形,python输出宽度是什么意思

时间:2023-05-05 15:40:45 阅读:9141 作者:3337

今天看矩形滤镜的时候,突然脑子短路,把一些概念都弄混了。 现在总结一下,下次再搅拌的时候可以参考确认。 自己的理解,如果有错误的地方请指出来。

首先,Opencv2基本上用Mat表示图像。 c的函数调用也基本上是Mat图。 基本上,一个图像是一个数字矩阵,矩阵中的每个元素表示一个像素。 对于灰度图像,像素以8位无符号数表示,0表示黑色,255表示白色。 矩阵和图像之间有什么关系呢?

首先,Mat图有行和列。 也就是说,cv:Mat具有公共成员变量cols和rows。 其中,请注意cols是图像的宽度width,rows是图像的高度height。 此width和height可从其他Opencv成员获得。 例如,矩形Rect。 矩形Rect是一种常用的结构。 我自己触摸的是鼠标选择矩形区域、目标周围的矩形区域、过滤器矩形模板、目标的矩形特征、矩形内的运算等。 Rect是非常常用的结构,在Opencv中可以说是非常有用的结构。 本质上,矩形区域是图像的子部分或图像矩阵的子矩阵。

这里引用关于《OpenCV学习笔记(四十一)——再看基础数据结构core》的Rect的介绍。 Rect_类有几个含义。 成员变量x、y、width和height分别是左上角点的坐标和矩形的宽度和高度。 常用的成员函数包括Size (函数返回值为一个Size,area )返回矩形面积,contains (点)确定点是否位于矩形中,以及inside (rect )函数是否位于矩形中

第二,显示Mat贴图图像的像素位置和显示矩阵中的元素。 本节引用了《访问Mat图像中每个像素的值》中的几个图来说明存储在Mat矩阵中的数据之间的关系。 单通道映射数据存储格式:

在多通道图像中,通道数量的子列排列在每一列中,就像RGB通道彩色图像一样。

此时,二维矩阵的行和列用于表示一个元素,通常从0标签开始,因此实际上有m 1列。 也就是说,宽度width为m 1,行相似。 此外,mat.at(inty,int x )访问像素。 此时y表示的行号、x表示的列号对应于x表示水平宽度、y表示垂直高度。 但是,x和y都是从0开始的标签。 容易混淆的是一些矩阵的减法。 减法运算后,如何表示像素位置,此时一般很难掌握,但了解矩阵中x、y、width、height的关系会更容易明确。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。