#include <iostream>
#include <opencv2/opencv.hpp>
#include <vector>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("nazha1.jpg");
if (img.empty())
{
cout << "输入为空";
return -1;
}
//二值化
Mat gray, binary;
cvtColor(img, gray, COLOR_BGR2GRAY);
threshold(gray, binary, 105, 255, THRESH_BINARY);
//开运算消除细小区域
Mat k = getStructuringElement(MORPH_RECT, Size(3, 3), Point(-1, -1));
morphologyEx(binary, binary, MORPH_OPEN, k);
//轮廓发现
vector<vector<Point>> contours;
vector<Vec4i> hierachy;
findContours(binary, contours, hierachy, 0, 2, Point());
//计算几何矩 中心矩 归一化几何矩
for (int n = 0; n < contours.size(); n++)
{
Moments M;
M = moments(contours[n], true);
cout << "几何矩: " << endl
<< "m00: " << M.m00 << " m01: " << M.m01 << " m10:" << M.m10
<< " m11: " << M.m11 << " m02: " << M.m02 << " m20: " << M.m20 << endl;
cout << "中心矩: " << endl
<< "mu20: " << M.mu20 << " m02: " << M.mu02 << " m20:" << M.mu20
<< " mu11: " << M.mu11 << " m02: " << M.mu02 << " m20: " << M.mu20 << endl;
cout << "归一化几何矩: " << endl
<< "nu20: " << M.nu20 << " nu21: " << M.nu21 << " nu02:" << M.nu20
<< " nu11: " << M.nu11 << " nu02: " << M.nu02 << " nu20: " << M.nu20 << endl;
}
}
输出结果:
几何矩:
m00: 6 m01: 2814 m10:1407 m11: 659883 m02: 1.31977e+06 m20: 329946
中心矩:
mu20: 4.5 m02: 2 m20:4.5 mu11: 0 m02: 2 m20: 4.5
归一化几何矩:
nu20: 0.125 nu21: 0 nu02:0.125 nu11: 0 nu02: 0.0555556 nu20: 0.125
几何矩:
m00: 6 m01: 2814 m10:1095 m11: 513555 m02: 1.31977e+06 m20: 199842
中心矩:
mu20: 4.5 m02: 2 m20:4.5 mu11: 0 m02: 2 m20: 4.5
归一化几何矩:
nu20: 0.125 nu21: 0 nu02:0.125 nu11: 0 nu02: 0.0555556 nu20: 0.125
几何矩:
m00: 6 m01: 2808 m10:1665 m11: 779220 m02: 1.31415e+06 m20: 462042
中心矩:
mu20: 4.5 m02: 2 m20:4.5 mu11: 0 m02: 2 m20: 4.5
归一化几何矩:
nu20: 0.125 nu21: 0 nu02:0.125 nu11: 0 nu02: 0.0555556 nu20: 0.125
几何矩:
m00: 11 m01: 5152.33 m10:2167 m11: 1.01501e+06 m02: 2.41333e+06 m20: 426912
中心矩:
mu20: 13.1667 m02: 7.4596 m20:13.1667 mu11: 0 m02: 7.4596 m20: 13.1667
归一化几何矩:
nu20: 0.108815 nu21: -0.00453563 nu02:0.108815 nu11: 0 nu02: 0.0616496 nu20: 0.108815
几何矩:
m00: 11 m01: 5135 m10:2993.5 m11: 1.39743e+06 m02: 2.39712e+06 m20: 814652
中心矩:
mu20: 12.1288 m02: 13.1364 m20:12.1288 mu11: 7.02273 m02: 13.1364 m20: 12.1288
归一化几何矩:
nu20: 0.100238 nu21: -0.00146901 nu02:0.100238 nu11: 0.0580391 nu02: 0.108565 nu20: 0.100238
几何矩:
m00: 6 m01: 2766 m10:1575 m11: 726075 m02: 1.27513e+06 m20: 413442
中心矩:
mu20: 4.5 m02: 2 m20:4.5 mu11: 0 m02: 2 m20: 4.5
归一化几何矩:
nu20: 0.125 nu21: 0 nu02:0.125 nu11: 0 nu02: 0.0555556 nu20: 0.125
几何矩:
m00: 6 m01: 2766 m10:1281 m11: 590541 m02: 1.27513e+06 m20: 273498
中心矩:
mu20: 4.5 m02: 2 m20:4.5 mu11: 0 m02: 2 m20: 4.5
归一化几何矩:
nu20: 0.125 nu21: 0 nu02:0.125 nu11: 0 nu02: 0.0555556 nu20: 0.125
几何矩:
opencv计算图像几何矩, 中心矩, 归一化几何矩
最新推荐文章于 2024-12-19 20:50:55 发布