OpenCV : 图像轮廓的矩 Image Moments
矩特征(Moments Features) :
矩特征是图像分析和模式识别的一种特征表示方法,用于描述图像的形状、几何特征和统计信息。可用于识别图像中的对象、检测形状及进行图像分类等。
常见的矩特征:
1. 零阶矩(Zeroth-Order Moments):用于描述图像的总体亮度或面积。
2. 一阶矩(First-Order Moments):描述图像的质心、平均位置和分布,通常用于计算图像的中心位置。
3. 中心距(Central Moments):描述图像区域想读与质心的分布,中心距能够捕获图像的旋转和平移特性。
4. 标准化矩(Normalized Moments):将矩标准化以获得尺度和旋转不变性,标准化矩可用于图像匹配和模式识别。
5. Hu不变矩(Hu Moments):基于基本矩构建,具有旋转、平移和尺度不变性,可用于图像匹配和模式识别。
图像的质心就是图像全部像素的平均位置,也是图像的重心和几何中心。
OpenCV 图像矩的计算 :
OpenCV使用moments函数来获取图像的矩特征
moments_dict = cv2.moments(array, binaryImage) - array : 输入的轮廓点集,也可以是火毒图像或二值图像 - binaryImage : 该参数为True时,array内所有非零值被设为1,仅在输入array为图像时有效
函数的返回值为存储图像矩特征的字典,包括
1. 空间矩:
零阶矩:m00 一阶矩:m10, m01 二阶矩:m20, m11, m02 三阶矩:m30, m21, m12, m03
2. 中心距:
二阶中心矩:mu20, mu11, mu02 三阶中心距:mu30, mu21, mu12, mu03
3. 归一化中心:
二阶Hu矩:nu20, nu11, nu02 三阶Hu矩:nu30, nu21, nu12, nu03
如果两个轮廓的矩一致,那么这两个轮廓就是一致的。
零阶矩m00表示的是轮廓的面积,与cv2.contourArea()的计算结果一致。
计算轮廓的质心可以通过如下公式计算
x = int( M['m10'] / M['m00'] )
y = int( M['m01'] / M['m00'] )
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧