Mahotas 简明教程
Mahotas - Getting Image Moments
图像矩是用于描述图像各种属性的统计度量。它提供有关形状、位置、对象方向和图像内对象强度的信息。
通常,图像矩通过将像素强度及其相应空间坐标的乘积求和来计算。这些矩可用于导出有用的特征,如图像中对象的质心(平均位置)、面积、方向和比例。高阶矩可以捕获更复杂形状特征。
Getting Image moments in Mahotas
在 Mahotas 的上下文中,图像矩使用 mahotas.moments() 函数计算。此函数将图像作为输入并返回一组描述图像的矩。
Mahotas 提供各种类型的矩,包括原始矩、中心矩、归一化矩和 Hu 矩。这些矩对于对象识别、图像对齐和形状分析等任务非常有用。
Using the mahotas.moments() Function
mahotas.moments() 函数用于获取图像或感兴趣区域 (ROI) 的矩。该函数将图像对象作为输入并返回包含计算矩的 numpy 数组。
NumPy 数组就像一个数据表格,其中每个值都排列在一个网格中,您可以轻松地对整个网格或其特定部分执行计算。
以下是 Mahotas 中 moments() 函数的基本语法:
mahotas.moments(image, p0, p1, cm=(0, 0), convert_to_float=True)
其中,
-
p0 − 它是第一个维度的幂 (float)
-
p1 − 它是第二个维度的幂 (float)
-
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
Getting Image Moments by Specifying Center of Mass
质心是对像素平均位置的度量,根据像素强度进行加权。通过指定质心,我们可以获得相对该特定位置的矩。
我们可以指定质心,通过将 'cm' 参数传递给 moments() 函数来获得图像矩。通过设置质心,我们可以平移坐标系统,并获得相对于图像内特定位置的矩。
Getting Image moments by Disabling Float Conversion
通过禁用浮点转换,我们在矩形计算过程中保留输入图像的原始数据类型。这在处理特定图像格式时非常有用,例如灰度或二进制图像,其中像素值已为整数格式。
我们可以通过将 'convert_to_float' 参数传递给 moments() 函数,在 mahotas 中图像矩计算期间禁用将输入图像转换为浮点表示。
convert_to_float 参数被明确设置为 False。这确保输入图像在矩形计算期间不会转换为浮点表示。