- Mahotas 教程
- Mahotas - 首页
- Mahotas - 简介
- Mahotas - 计算机视觉
- Mahotas - 历史
- Mahotas - 特性
- Mahotas - 安装
- Mahotas 图像处理
- Mahotas - 图像处理
- Mahotas - 加载图像
- Mahotas - 加载灰度图像
- Mahotas - 显示图像
- Mahotas - 显示图像形状
- Mahotas - 保存图像
- Mahotas - 图像质心
- Mahotas - 图像卷积
- Mahotas - 创建RGB图像
- Mahotas - 图像欧拉数
- Mahotas - 图像中零的比例
- Mahotas - 获取图像矩
- Mahotas - 图像局部最大值
- Mahotas - 图像椭圆轴
- Mahotas - 图像RGB拉伸
- Mahotas 颜色空间转换
- Mahotas - 颜色空间转换
- Mahotas - RGB转灰度转换
- Mahotas - RGB转LAB转换
- Mahotas - RGB转褐色
- Mahotas - RGB转XYZ转换
- Mahotas - XYZ转LAB转换
- Mahotas - XYZ转RGB转换
- Mahotas - 增加伽马校正
- Mahotas - 拉伸伽马校正
- Mahotas 标记图像函数
- Mahotas - 标记图像函数
- Mahotas - 标记图像
- Mahotas - 过滤区域
- Mahotas - 边界像素
- Mahotas - 形态学运算
- Mahotas - 形态学算子
- Mahotas - 查找图像平均值
- Mahotas - 裁剪图像
- Mahotas - 图像偏心率
- Mahotas - 图像叠加
- Mahotas - 图像圆度
- Mahotas - 调整图像大小
- Mahotas - 图像直方图
- Mahotas - 图像膨胀
- Mahotas - 图像腐蚀
- Mahotas - 分水岭算法
- Mahotas - 图像开运算
- Mahotas - 图像闭运算
- Mahotas - 填充图像空洞
- Mahotas - 条件膨胀图像
- Mahotas - 条件腐蚀图像
- Mahotas - 图像条件分水岭算法
- Mahotas - 图像局部最小值
- Mahotas - 图像区域最大值
- Mahotas - 图像区域最小值
- Mahotas - 高级概念
- Mahotas - 图像阈值化
- Mahotas - 设置阈值
- Mahotas - 软阈值
- Mahotas - Bernsen局部阈值化
- Mahotas - 小波变换
- 制作图像小波中心
- Mahotas - 距离变换
- Mahotas - 多边形工具
- Mahotas - 局部二值模式
- 阈值邻域统计
- Mahotas - Haralic 特征
- 标记区域的权重
- Mahotas - 泽尼克特征
- Mahotas - 泽尼克矩
- Mahotas - 排序滤波器
- Mahotas - 二维拉普拉斯滤波器
- Mahotas - 多数滤波器
- Mahotas - 均值滤波器
- Mahotas - 中值滤波器
- Mahotas - Otsu 方法
- Mahotas - 高斯滤波
- Mahotas - 击中与击不中变换
- Mahotas - 标记最大值数组
- Mahotas - 图像平均值
- Mahotas - SURF 密集点
- Mahotas - SURF 积分
- Mahotas - Haar 变换
- 突出图像最大值
- 计算线性二值模式
- 获取标签边界
- 反转 Haar 变换
- Riddler-Calvard 方法
- 标记区域的大小
- Mahotas - 模板匹配
- 加速鲁棒特征
- 去除带边框的标记
- Mahotas - Daubechies 小波
- Mahotas - Sobel 边缘检测
Mahotas - 泽尼克矩
与泽尼克特征类似,泽尼克矩也是一组描述图像中物体形状的数学值。它们提供了关于形状的具体细节,例如形状的圆度或对称性,或者是否存在任何特定的模式。
泽尼克矩具有一些特殊的属性,如下所述:
尺寸不变性 - 无论其大小如何,它们都可以描述形状。因此,即使您拥有小型或大型物体,泽尼克矩仍然可以准确地捕捉其形状。
旋转不变性 - 如果您旋转图像中的物体,泽尼克矩将保持不变。
缩放不变性 - 如果您调整图像中物体的尺寸,泽尼克矩将保持不变。
泽尼克矩使用称为泽尼克多项式的特殊数学函数将形状分解成更小的部分。
这些多项式充当构建块。通过组合不同的泽尼克多项式,我们可以重现并表示物体形状的独特特征。
Mahotas中的泽尼克矩
为了在mahotas中计算泽尼克矩,我们可以使用mahotas.features.zernike_moments()函数。
在 Mahotas 中,泽尼克矩是通过生成一组泽尼克多项式来计算的,这些多项式是表示各种形状和轮廓的特殊数学函数。
这些多项式充当分析物体形状的构建块。
之后,通过将物体的形状投影到泽尼克多项式上来计算泽尼克矩。这些矩捕捉重要的形状特征。
mahotas.features.zernike_moments() 函数
mahotas.features.zernike_moments() 函数接受两个参数:图像对象和泽尼克多项式的最大半径。该函数返回图像的泽尼克矩的一维数组。
语法
以下是 mahotas.features.zernike_moments() 函数的基本语法:
mahotas.features.zernike_moments(im, radius, degree=8, cm={center_of_mass(im)})
其中,
im - 这是将对其计算泽尼克矩的输入图像。
radius - 它定义了圆形区域的半径(以像素为单位),在此半径上将计算泽尼克矩。由此半径定义的圆形区域(以质心为中心)之外的区域将被忽略。
degree(可选) - 它指定要计算的泽尼克矩的最大数量。默认情况下,degree 值为 8。
cm(可选) - 它指定图像的质心。默认情况下,使用图像的质心。
示例
以下是使用默认 degree 值计算图像泽尼克矩的基本示例:
import mahotas as mh # Load images of shapes image = mh.imread('sun.png', as_grey=True) # Compute Zernike moments moments = mh.features.zernike_moments(image, radius=10) # Compare the moments for shape recognition print(moments)
输出
执行上述代码后,我们将得到如下输出:
[0.31830989 0.00534998 0.00281258 0.0057374 0.01057919 0.00429721 0.00178094 0.00918145 0.02209622 0.01597089 0.00729495 0.00831211 0.00364554 0.01171028 0.02789188 0.01186194 0.02081316 0.01146935 0.01319499 0.03367388 0.01580632 0.01314671 0.02947629 0.01304526 0.00600012]
使用自定义质心
图像的质心是图像中质量均匀分布的点。自定义质心是图像中不一定是图像质心的点。
这在您想要使用不同的质心进行计算的情况下非常有用。
例如,您可能想要使用图像中物体的自定义质心来计算该物体的泽尼克矩。
为了在 mahotas 中使用自定义质心计算图像的泽尼克矩,我们需要将cm参数传递给 mahotas.features.zernike_moments() 函数。
cm 参数接受一个包含两个数字的元组,它们表示自定义质心的坐标。
示例
在这里,我们尝试使用自定义质心计算图像的泽尼克矩:
import mahotas import numpy as np # Load the image image = mahotas.imread('nature.jpeg', as_grey = True) # Calculate the center of mass of the image center_of_mass = np.array([100, 100]) # Calculate the Zernike moments of the image, using the custom center of mass zernike_moments = mahotas.features.zernike_moments(image, radius = 5, cm=center_of_mass) # Print the Zernike moments print(zernike_moments)
输出
以下是上述代码的输出:
[3.18309886e-01 3.55572603e-04 3.73132619e-02 5.98944983e-04 3.23622041e-04 1.72293481e-04 9.16757235e-02 3.35704966e-04 7.09426259e-02 1.17847972e-04 2.12625026e-04 3.06537827e-04 1.94379185e-01 1.32093249e-04 8.54616882e-02 1.83274207e-04 1.86728282e-04 3.08004108e-04 4.79437809e-04 1.97726337e-04 3.61630733e-01 5.27467687e-04 8.25534856e-02 7.75593823e-06 1.99419391e-01]
使用特定阶数
泽尼克矩的阶数是其可以表示的形状复杂程度的度量。阶数越高,矩可以表示的形状越复杂。
为了在 mahotas 中使用特定阶数计算图像的泽尼克矩,我们需要将degree参数传递给 mahotas.features.zernike_moments() 函数。
示例
在下面的示例中,我们尝试使用指定的阶数计算图像的泽尼克矩。
import mahotas import numpy as np # Load the image image = mahotas.imread('nature.jpeg', as_grey = True) # Calculate the Zernike moments of the image, using the specific order zernike_moments = mahotas.features.zernike_moments(image,1, 4) # Print the Zernike moments print(zernike_moments)
输出
上述代码的输出如下所示:
[0.31830989 0.17086131 0.03146824 0.1549947 0.30067136 0.5376049 0.30532715 0.33032683 0.47908119]