OpenCV 笔记(15):轮廓的矩特征

矩(moment) 是概率与统计中的一个概念,是随机变量的一种数字特征,是对变量分布和形态特点的一组度量。

矩的定义如下:

其中,f(x) 是随机变量的概率密度函数或概率质量函数,n 是正整数表示矩的阶数。

矩可以用来描述变量的均值、方差、偏度、峰度等特性。矩的性质如下:

  • 零阶矩是变量的均值。

  • 一阶矩是变量的均方根。

  • 二阶矩是变量的方差。

  • 三阶矩是变量的偏度。

  • 四阶矩是变量的峰度。

在图像处理中,图像的矩是指图像的某些特定像素灰度的加权平均值,或者是图像具有类似功能或意义的属性。图像矩可以表示图像的一些特征,通过这些特征便于对图像进行识别。

Part11.  空间矩/几何矩

空间矩是图像矩特征中最基本的一种,它只考虑图像的像素值

其中,f(x,y) 表示输入的图像,p、q 是正整数。

11.1 零阶矩

零阶矩可以用来描述图像的面积。

21.2 一阶矩

一阶矩可以用来描述图像的质心。

31.3 二阶矩

二阶矩可以用来描述图像的周长、长轴、短轴、扭矩等信息。

41.4 三阶矩

下面的代码找到图像中的有效轮廓后,通过 moments() 函数计算轮廓的空间矩。

#include <iostream>
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"

using namespace std;
using namespace cv;

bool ascendSort(vector<Point> a,vector<Point> b)
{
    return contourArea(a) > contourArea(b);
}

int main(int argc, char **argv) {
    Mat src = imread("/Users/Tony/OpenCV_Learning/2.11/test.jpg");
    imshow("src", src);

    Mat gray,thresh;
    cvtColor(src, gray, cv::COLOR_BGR2GRAY);

    threshold(gray,thresh,0,255,THRESH_BINARY_INV | THRESH_OTSU);
    imshow("thresh", thresh);

    vector<vector<Point>> contours;
    vector<Vec4i> hierarchy;
    findContours(thresh, contours, hierarchy, RETR_EX
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值