- 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 到 Sepia 转换
- 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 - 2D 拉普拉斯滤波器
- 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()** 函数。
在 Mahotas 中,泽尼克特征通过执行以下步骤计算 -
**步骤 1** - 生成一组泽尼克多项式,这些多项式是表示各种形状和轮廓的特殊数学函数。这些多项式充当分析物体形状的构建块。
**步骤 2** - 通过将物体的形状投影到泽尼克多项式上计算泽尼克矩。这些矩捕获重要的形状特征。
**步骤 3** - 从计算出的矩中提取泽尼克特征,这些特征表示基本的形状信息。
mahotas.features.zernike() 函数
mahotas.features.zernike() 函数接受三个参数:图像对象、泽尼克多项式的最大半径以及要计算的特征(度)数。该函数返回图像的泽尼克特征的一维数组。
泽尼克矩的度数是衡量矩复杂程度的指标。度数越高,矩越复杂。
语法
以下是 mahotas.features.zernike() 函数的基本语法 -
mahotas.features.zernike(im, degree, radius, cm={center_of_mass(im)})
其中,
**im** - 它是将对其计算泽尼克矩的输入图像。
**degree** - 它指定要计算的泽尼克矩的最大数量。
**radius** - 它定义了圆形区域的半径(以像素为单位),泽尼克矩将在其上计算。此半径定义的圆形区域(以质心为中心)之外的区域将被忽略。
**cm(可选)** - 它指定图像的质心。默认情况下,使用图像的质心。
示例
以下是计算图像形状识别的泽尼克特征的基本示例 -
import mahotas as mh # Load images of shapes image1 = mh.imread('sun.png', as_grey=True) # Compute Zernike features features = mh.features.zernike(image1, degree=8, radius=10) # Printing the features for shape recognition print(features)
输出
执行上述代码后,我们得到如下输出 -
[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() 函数。
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 features of the image, using the custom center of mass zernike_features = mahotas.features.zernike(image, degree= 5, radius = 5, cm=center_of_mass) # Print the Zernike features print(zernike_features)
输出
以下是上述代码的输出 -
[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]
计算多个图像的泽尼克特征
我们还可以以不同的格式计算多个图像的泽尼克特征。以下是实现此目的的方法 -
创建一个空列表。
使用 for 循环迭代图像列表。
计算每个图像的泽尼克特征。
features.zernike() 函数返回一个泽尼克矩向量,然后将其追加到泽尼克特征列表中。
示例
现在,我们尝试一起计算不同格式的多个图像的泽尼克特征 -
import mahotas import numpy as np # Load the images images = [mahotas.imread('sun.png', as_grey = True), mahotas.imread('nature.jpeg', as_grey = True), mahotas.imread('tree.tiff', as_grey = True)] # Calculate the Zernike features of the images zernike_features = [] for image in images: zernike_features.append(mahotas.features.zernike(image, degree=2, radius = 2)) # Print the Zernike features print(zernike_features)
输出
上述代码的输出如下 -
[array([0.31830989, 0.05692079, 0.10311168, 0.01087613]), array([0.31830989, 0.02542476, 0.11556386, 0.01648607]), array([0.31830989, 0.12487805, 0.07212079, 0.03351757])]