- 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 - Haralick 特征
- 标记区域的权重
- Mahotas - Zernike 特征
- Mahotas - Zernike 矩
- Mahotas - 排序滤波器
- Mahotas - 二维拉普拉斯滤波器
- Mahotas - 多数滤波器
- Mahotas - 均值滤波器
- Mahotas - 中值滤波器
- Mahotas - Otsu 方法
- Mahotas - 高斯滤波
- Mahotas - Hit & Miss 变换
- Mahotas - 标记最大值数组
- Mahotas - 图像均值
- Mahotas - SURF 密集点
- Mahotas - SURF 积分图像
- Mahotas - Haar 变换
- 突出显示图像最大值
- 计算线性二值模式
- 获取标签边界
- 反转 Haar 变换
- Riddler-Calvard 方法
- 标记区域的大小
- Mahotas - 模板匹配
- 加速鲁棒特征
- 移除带边框的标签
- Mahotas - Daubechies 小波
- Mahotas - Sobel 边缘检测
Mahotas - 获取图像矩
图像矩是用于描述图像各种属性的统计量度。它提供有关图像中物体的形状、位置、方向和强度信息。
一般来说,图像矩是通过将像素强度与其对应的空间坐标的乘积相加来计算的。这些矩可用于导出有用的特征,例如图像中物体的质心(平均位置)、面积、方向和比例。高阶矩可以捕捉更复杂的形状特征。
在 Mahotas 中获取图像矩
在 Mahotas 的上下文中,图像矩使用 **mahotas.moments()** 函数计算。此函数以图像作为输入,并返回一组表征图像的矩。
Mahotas 提供各种类型的矩,包括原始矩、中心矩、归一化矩和 Hu 矩。这些矩可用于诸如目标识别、图像对齐和形状分析之类的任务。
使用 mahotas.moments() 函数
mahotas.moments() 函数用于获取图像或感兴趣区域 (ROI) 的矩。此函数以图像对象作为输入,并返回包含计算出的矩的 NumPy 数组。
NumPy 数组就像一个数据表,其中每个值都以网格形式排列,您可以轻松地对整个网格或特定部分进行计算。
以下是 Mahotas 中 moments() 函数的基本语法:
mahotas.moments(image, p0, p1, cm=(0, 0), convert_to_float=True)
其中,
**p0** - 它是第一维的幂 (浮点数)
**p1** - 它是第二维的幂 (浮点数)
**image** - 它是输入图像,应为二维数组
**cm** - 它是质心,默认为 (0,0)。
示例
在下面给出的示例中,我们使用 moments() 函数来获取图像矩:
import mahotas as mh import numpy as np from pylab import imshow, show image = mh.imread('sun.png') # extracting the first channel (0th index) of the image array using slicing cimage=image[:,:,0] p0=5.5 p1=5.5 moment = mh.moments(cimage,p0,p1) print(moment)
输出
以下是上述代码的输出:
2.971238276705602e+39
通过指定质心来获取图像矩
质心是像素平均位置的度量,以其强度为权重。通过指定质心,我们可以获得相对于该特定位置的矩。
我们可以通过将 **'cm'** 参数传递给 moments() 函数来指定质心以获取图像矩。通过设置质心,我们可以移动坐标系并获得相对于图像中特定位置的矩。
示例
在这里,我们通过指定质心坐标来获取图像矩:
import mahotas as mh image = mh.imread('nature.jpeg', as_grey = True) moments = mh.moments(image, p0=1, p1=0, cm=(100, 100)) print(moments)
输出
执行上述代码后,我们得到以下输出:
40074427849.0
通过禁用浮点数转换来获取图像矩
通过禁用浮点数转换,我们在矩计算过程中保留输入图像的原始数据类型。当我们使用特定图像格式(例如灰度或二值图像)时,这很有用,在这些图像中,像素值已经是整数格式。
我们可以通过将 **'convert_to_float'** 参数传递给 moments() 函数,在 Mahotas 中禁用在图像矩计算期间将输入图像转换为浮点数表示。
**convert_to_float** 参数显式设置为 False。这确保在矩计算期间不将输入图像转换为浮点数表示。
示例
在下面的示例中,我们通过禁用浮点数转换来获取图像矩:
import mahotas as mh image = mh.imread('tree.tiff', as_grey = True) moments = mh.moments(image, p0=2, p1=0, cm=(0, 0), convert_to_float=False) print(moments)
输出
上述代码的输出如下:
11029976739711.432
获取高阶图像矩
高阶图像矩提供了图像像素分布、对称性和形状特征的更详细信息。这些矩帮助我们捕捉低阶矩可能忽略的复杂模式和变化。
我们可以通过使用 **'p0'** 和 **'p1'** 参数指定所需的矩阶来在 Mahotas 中获取高阶图像矩,其中较高的值表示较高的阶数。
示例
在这里,我们尝试获取高阶图像矩:
import mahotas as mh image = mh.imread('sea.bmp', as_grey = True) moments = mh.moments(image, p0=3, p1=3, cm=(10, 10)) print(moments)
输出
上述代码的输出如下:
2.3690172519584466e+24