千家信息网

C++如何实现OpenCV图像的矩

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍了C++如何实现OpenCV图像的矩,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概述图像识别的一个核心问题是图像的特
千家信息网最后更新 2025年12月02日C++如何实现OpenCV图像的矩

这篇文章主要介绍了C++如何实现OpenCV图像的矩,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

概述

图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。

从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与重构等领域。

OpenCV中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。

相关API

cv::moments (   InputArray  array,                bool    binaryImage = false             )
  • array:输入数组,可以是光栅图像(单通道,8-bit或浮点型二维数组),或者是一个二维数组(1 X N或N X 1),二维数组类型为Point或Point2f

  • binaryImage:默认值是false,如果为true,则所有非零的像素都会按值1对待,也就是说相当于对图像进行了二值化处理,阈值为1,此参数仅对图像有效。


contourArea()

该函数使用Green formula计算轮廓面积,返回面积和非零像素数量如果使用drawContours或fillPoly绘制轮廓,可能导致不同。

double cv::contourArea  (   InputArray  contour,                            bool    oriented = false                         )
  • contour:是一个向量,二维点,可以是vector或Mat类型

  • oriented:有默认值false,面向区域标识符,如果为true,该函数返回一个带符号的面积,其正负取决于轮廓的方向(顺时针还是逆时针)。根据这个特性可以根据面积的符号来确定轮廓的位置。如果是默认值false,则面积以绝对值的形式返回.


arcLength()

用于计算封闭轮廓的周长或曲线的长度

double cv::arcLength    (   InputArray  curve,                            bool    closed                             )
  • curve:输入二维点集,可以是vector或Mat类型

  • closed:曲线是否封闭的标志位,true则封闭否则不封闭


代码演示

新建一个项目opencv-0026,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法

核心代码

实现步骤:

  1. 变为灰度图

  2. 高斯模糊

  3. 边缘检测

  4. 轮廓提取

  5. 计算图像矩

  6. 计算图像的质心

  7. 绘制轮廓和质心

  8. 显示图像

运行效果

其中命令行里面显示每个轮廓的面积和周长,右边的画的轮廓里面还有每个轮廓的质心

感谢你能够认真阅读完这篇文章,希望小编分享的"C++如何实现OpenCV图像的矩"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

图像 轮廓 面积 二维 数组 特征 篇文章 数据 类型 质心 C++ 不同 代码 像素 几何 函数 周长 属性 方向 曲线 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 热血江湖单机数据库修改经验 河北北斗网络时钟服务器云主机 数据库ln 网络技术与化工 三国志前往新服务器原有的武将 阿里持有斑马网络技术 蓝桥Java软件开发 湖南小桔灯互联网科技有限公司 无服务器计算机有前景吗 空智互联网科技有限公司 学创杯创业之星服务器地址 互联网科技公司取名四个字 淄川销售软件开发报价 共享单车软件开发公司 部队战士网络安全讨论 无锡公安信息网络安全监测林 无线网络摄像头软件开发 卧底软件开发需要什么样的人 三国杀移动版有几个服务器 数据库安全 开源 外卖服务器供电多少伏 2u服务器 工程类软件开发创业计划书 用钉钉时连接服务器超时什么意思 网络安全与信息化的内容 怎么看自己的服务器和域名 铜梁区媒体网络技术活动简介 海阳电商软件开发哪家靠谱 法院如何做好网络安全的工作 数据库操作语言dml不包括
0