seo网站优化培训找哪些,视频网站开发技术书,免费logo设计自动生成器,为什么只有建设网站打不开OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】196.图像的矩和不变矩#xff08;cv.moments#xff09; 2. 轮廓的特征描述
在对实际图像进行轮廓查找时#xff0c;得到的轮廓数量很多。获取轮廓后#xff0c;通常基于轮廓的特征进行筛选、识别和处…OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】196.图像的矩和不变矩cv.moments 2. 轮廓的特征描述
在对实际图像进行轮廓查找时得到的轮廓数量很多。获取轮廓后通常基于轮廓的特征进行筛选、识别和处理。例如基于轮廓的周长和面积对轮廓进行筛选然后绘制筛选的目标轮廓或其最小外接矩形。
常用的轮廓特征包括图像距、轮廓周长、轮廓近似、凸包、边界矩形、拟合图形等特征。 2.1 图像的矩image moments
矩是概率与统计中的一个概念是随机变量的一种数字特征。把图像的像素坐标看成二维随机变量 (X,Y)就可以用概率密度函数来表示一幅灰度图像因此可以用矩来描述灰度图像的特征。
矩函数在图像分析中有着广泛的应用如模式识别、目标分类、图像编码与重构等。图像矩通常描述了图像形状的全局特征并提供了大量的关于该图像不同类型的几何特性信息比如大小、位置、方向及形状等。图像矩的特征描述能力被广泛应用于目标识别与方位估计。
图像矩有零阶矩、一阶矩、二阶矩、三阶矩等等。零阶矩与物体的质量有关一阶矩与形状有关由零阶矩与一阶矩可以求出重心二阶矩显示曲线围绕直线平均值的扩展程度三阶矩则是关于平均值的对称性的测量。
Hu 利用二阶和三阶归一化中心距构造了 7 个不变矩 M1~M7 在连续图像下具有平移、灰度、尺度、旋转不变性 是高度浓缩的图像特征。不变矩能够描述图像的整体性质从而在边缘提取、图像匹配及目标识别中得到了广泛的应用。
OpenCV 提供了函数 cv2.moments() 计算图像矩 Mu函数 cv2.HuMoments() 计算目标轮廓的 Hu 不变矩。
函数说明
cv.moments(array[, binaryImage]) → Mu
cv.HuMoments(Mu[, hu]) → Hu函数 cv2.moments() 以字典Dict形式返回图像的矩。
函数 cv2.HuMoments() 以列表List形式返回目标轮廓的 Hu 不变矩。
参数说明
array是一幅单通道 8-bits 图像或一个二维浮点数组如轮廓列表 contours 中的一个轮廓
binaryImage指示输入图像是否二值图像
返回值 Mu 是字典格式包括 24个键值对。
[‘m00’,‘m10’,‘m01’,‘m20’,‘m11’,‘m02’,‘m30’,‘m21’,‘m12’,‘m03’,‘mu20’,‘mu11’,‘mu02’,‘mu30’,‘mu21’,‘mu12’,‘mu03’,‘nu20’,‘nu11’,‘nu02’,‘nu30’,‘nu21’,nu12’,‘nu03’]
几何矩
前 10个键值 [‘m00’,‘m10’,‘m01’,‘m20’,‘m11’,‘m02’,‘m30’,‘m21’,‘m12’,‘m03’] 代表几何矩pq阶矩也称原点矩由以下公式计算得到 mpq∑y1N∑x1Mxpyqf(x,y),pq4m_{pq} \sum^N_{y1} \sum^M_{x1} x^p y^q f(x,y), \quad pq4 mpqy1∑Nx1∑Mxpyqf(x,y),pq4 零阶矩反映图像灰度的总和一阶矩描述图像的灰度中心二阶矩描述图像的主轴方向角三阶矩描述了投影的扭曲程度四阶矩描述投影峰度。
中心矩
中间 7 个键值 [‘mu20’,‘mu11’,‘mu02’,‘mu30’,‘mu21’,‘mu12’,‘mu03’] 代表中心矩由以下公式计算得到 mupq∑y1N∑x1M(x−Cx)p(y−Cy)qf(x,y),1pq4mu_{pq} \sum^N_{y1} \sum^M_{x1} (x-Cx)^p (y-Cy)^q f(x,y), \quad 1pq4 mupqy1∑Nx1∑M(x−Cx)p(y−Cy)qf(x,y),1pq4
归一化的中心矩
最后 7 个键值 [‘nu20’,‘nu11’,‘nu02’,‘nu30’,‘nu21’,nu12’,‘nu03’] 代表归一化的中心矩由以下公式计算得到 nupqmnpq(mn00)r,1pq4,r(pq)/21nu_{pq} \frac{mn_{pq}}{(mn_{00})^r}, \quad 1pq4, r(pq)/21 nupq(mn00)rmnpq,1pq4,r(pq)/21 当图像发生平移时几何距 mpqm_{pq}mpq 也会发生变化中心矩 mupqmu_{pq}mupq 具有平移不变性但在图像旋转时会发生变化归一化中心距不仅具有平移不变性而且具有比例不变性尺度不变性。
返回值 Hu 是一个列表List包括 7 个不变矩 M1~M7浮点数。 具体定义和计算公式为
M1nu20nu02M2(nu20−nu02)24(nu11)2M3(nu30−3nu12)2(3nu21−nu03)2M4(nu30nu12)2(nu21nu03)2M5(nu30−3nu12)(nu30nu12)[(nu30nu12)2−3(nu21nu03)2](3nu21−nu03)(nu21nu03)[3(nu30nu12)2−(nu21nu03)2]M6(nu20−nu02)[(nu30nu12)2−(nu21nu03)2]4nu11(nu30nu12)(nu21nu03)M7(3nu21−nu03)(nu30nu12)[(nu30nu12)2−3(nu21nu03)2]−(nu30−3nu12)(nu21nu03)[3(nu30nu12)2−(nu21nu03)2]\begin{aligned} M1 nu_{20} nu_{02} \\ M2 (nu_{20} - nu_{02})^2 4(nu_{11})^2 \\ M3 (nu_{30} - 3nu_{12})^2 (3nu_{21} - nu_{03})^2 \\ M4 (nu_{30} nu_{12})^2 (nu_{21} nu_{03})^2\\ M5 (nu_{30}-3nu_{12})(nu_{30}nu_{12})[(nu_{30}nu_{12})^2-3(nu_{21}nu_{03})^2]\\ (3nu_{21}-nu_{03})(nu_{21}nu_{03})[3(nu_{30}nu_{12})^2-(nu_{21}nu_{03})^2]\\ M6 (nu_{20} - nu_{02}) [(nu_{30}nu_{12})^2-(nu_{21}nu_{03})^2] 4nu_{11}(nu_{30} nu_{12})(nu_{21} nu_{03})\\ M7 (3nu_{21}-nu_{03})(nu_{30} nu_{12})[(nu_{30}nu_{12})^2-3(nu_{21}nu_{03})^2]\\ -(nu_{30}-3nu_{12})(nu_{21}nu_{03})[3(nu_{30}nu_{12})^2-(nu_{21}nu_{03})^2] \end{aligned} M1M2M3M4M5M6M7−nu20nu02(nu20−nu02)24(nu11)2(nu30−3nu12)2(3nu21−nu03)2(nu30nu12)2(nu21nu03)2(nu30−3nu12)(nu30nu12)[(nu30nu12)2−3(nu21nu03)2](3nu21−nu03)(nu21nu03)[3(nu30nu12)2−(nu21nu03)2](nu20−nu02)[(nu30nu12)2−(nu21nu03)2]4nu11(nu30nu12)(nu21nu03)(3nu21−nu03)(nu30nu12)[(nu30nu12)2−3(nu21nu03)2](nu30−3nu12)(nu21nu03)[3(nu30nu12)2−(nu21nu03)2]
Hu 利用二阶和三阶归一化中心距构造了 7 个不变矩 M1~M7 在连续图像下具有平移、灰度、尺度、旋转不变性 是高度浓缩的图像特征。 不变矩能够描述图像的整体性质从而在边缘提取、图像匹配及目标识别中得到了广泛的应用。
在实际的图像识别中只有 M1 和 M2 的不变性比较好而 M3~M7 的误差较大识别率比较低。Hu不变矩对于物体的形状描述比较稳定比较适合识别较大尺寸的物体如水果的形状、车牌的字符等。 例程 12.3图像的矩和不变矩 # 12.3 图像的矩和不变矩img cv2.imread(../images/pattern1.png, flags1)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图像moments cv2.moments(gray) # 返回字典几何矩 mpq, 中心矩 mupq 和归一化矩 nupqhuM cv2.HuMoments(moments) # 计算 Hu 不变矩print(Moments of gray:\n, moments)print(HuMoments of gray:\n, huM)运行结果
Moments of gray:{m00: 57220590.0, m10: 13719961613.0, m01: 17916046951.0, m20: 4341053990449.0, m11: 4299435737123.0, m02: 7389498908905.0, m30: 1545593411457635.0, m21: 1359833719777393.0,m12: 1774311676022503.0, m03: 3399191343099955.0, mu20: 1051375455813.2412, mu11: 3648566378.5934014, mu02: 1779896869666.3901, mu30: 541955362253.2455, mu21: -1121200313849.6638, mu12: 223412644453.03842, mu03: -29085806193109.273, nu20: 0.00032110951253946555, nu11: 1.114339663171786e-06, nu02: 0.0005436134285130389, nu30: 2.1881782097659954e-08, nu21: -4.5269154369990506e-08, nu12: 9.020423348997114e-09, nu03: -1.1743573688546415e-06}
HuMoments of gray:[[ 8.64722941e-04][ 4.95129596e-08][ 1.07861273e-12][ 1.48844380e-12][ 1.88120273e-24][ 3.30591622e-16][-1.33807015e-25]]本节完 版权声明
OpenCV 例程200篇 总目录-202205更新 youcansxupt 原创作品转载必须标注原文链接(https://blog.csdn.net/youcans/article/details/124998103)
Copyright 2022 youcans, XUPT Crated2022-5-28 欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列持续更新中 【youcans 的 OpenCV 例程200篇】194.寻找图像轮廓cv.findContours 【youcans 的 OpenCV 例程200篇】195.绘制图像轮廓cv.drawContours 【youcans 的 OpenCV 例程200篇】196.图像的矩和不变矩cv.moments 【youcans 的 OpenCV 例程200篇】197.轮廓的基本特征 【youcans 的 OpenCV 例程200篇】198.基于不变矩的形状相似性检测 【youcans 的 OpenCV 例程200篇】199.轮廓的外接边界框 【youcans 的 OpenCV 例程200篇】200.轮廓的基本属性 更多内容请见 【OpenCV 例程200篇 总目录-202206更新】