- 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 - 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 - Haralick 特征
Haralick 特征描述了图像的纹理。纹理指的是图像中赋予其特定外观的模式,例如表面的光滑度或物体的排列方式。
要处理 Haralick 特征,我们使用一个称为灰度共生矩阵 (GLCM) 的特殊矩阵。它是一个表示图像中像素强度对之间关系的矩阵。
它提供了关于图像中特定距离内像素强度值的不同组合出现的频率信息。
Mahotas 中的 Haralick 特征
要使用 Mahotas 计算 Haralick 特征,请通过指定像素对的距离和方向来创建 GLCM。接下来,使用 GLCM 计算构成 Haralick 特征的各种统计量度。
这些度量包括对比度、相关性、能量、熵、同质性和更多。最后,检索计算出的 Haralick 特征。
例如,Haralick 纹理分析中的对比度特征告诉我们图像中相邻像素的亮度或暗度变化程度。为了计算此特征,我们分析 GLCM 矩阵。
此矩阵显示具有不同亮度级别的像素对x有多频繁地一起出现以及它们在图像中的位置。
我们可以使用 **mahotas.features.haralick()** 函数在 mahotas 中计算 Haralick 特征。
mahotas.features.haralick() 函数
haralick() 函数以灰度图像作为输入,并返回计算出的 Haralick 特征。Haralick 特征是根据灰度图像计算的。
Mahotas 允许我们通过分析图像的 GLCM 来计算 Haralick 特征。这样,我们可以提取有关图像中存在的纹理模式的信息。
语法
以下是 mahotas 中 haralick() 函数的基本语法:
mahotas.features.haralick(f, ignore_zeros=False, preserve_haralick_bug=False, compute_14th_feature=False, return_mean=False, return_mean_ptp=False, use_x_minus_y_variance=False, distance=1)
参数
以下是 mahotas 中 haralick() 函数接受的参数:
**f** - 它是输入图像。
**ignore_zeros(可选)** - 它计算在计算 Haralick 特征时是否应忽略(True)或考虑(False)输入矩阵中的零值。
**preserve_haralick_bug(可选)** - 它确定是否复制 Haralick 方程中的拼写错误。
**compute_14th_feature(可选)** - 它指示是否计算第 14 个 Haralick 特征(差异性)。默认情况下,它设置为 False。
**use_x_minus_y_variance(可选)** - 默认情况下,mahotas 使用 VAR[P(|x−y|)],但如果此参数为 True,则使用 VAR[|x−y|]。
**distance(可选)** - 它表示计算 GLCM 时使用的像素距离。它确定在分析像素之间空间关系时考虑的邻域大小。默认情况下,它设置为 1。
**return_mean** - 当设置为 True 时,函数返回所有方向上的平均值。
**return_mean_ptp** - 当设置为 True 时,函数返回所有方向上的平均值和点到点 (ptp) 值(max() 和 min() 之间的差值)。
示例
以下是计算 mahotas 中 Haralick 特征的基本示例:
import mahotas import numpy as np import matplotlib.pyplot as mtplt # Load a grayscale image image = mahotas.imread('nature.jpeg', as_grey=True).astype(np.uint8) # Compute Haralick texture features features = mahotas.features.haralick(image) print(features) # Displaying the original image fig, axes = mtplt.subplots(1, 2, figsize=(9, 4)) axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].axis('off') # Displaying the haralick featured image axes[1].imshow(features, cmap='gray') axes[1].set_title('Haralick Feature') axes[1].axis('off') mtplt.show()
输出
执行上述代码后,我们得到如下所示的输出:
[[ 2.77611344e-03 2.12394600e+02 9.75234595e-01 4.28813094e+03 4.35886838e-01 2.69140151e+02 1.69401291e+04 8.31764345e+00 1.14305862e+01 6.40277627e-04 4.00793348e+00 -4.61407168e-01 9.99473205e-01] [ 1.61617121e-03 3.54272691e+02 9.58677001e-01 4.28662846e+03 3.50998369e-01 2.69132899e+02 1.67922411e+04 8.38274113e+00 1.20062562e+01 4.34549344e-04 4.47398649e+00 -3.83903098e-01 9.98332575e-01] [ 1.92630414e-03 2.30755916e+02 9.73079650e-01 4.28590105e+03 3.83777866e-01 2.69170823e+02 1.69128483e+04 8.37735303e+00 1.17467122e+01 5.06580792e-04 4.20197981e+00 -4.18866103e-01 9.99008620e-01] [ 1.61214638e-03 3.78211585e+02 9.55884630e-01 4.28661922e+03 3.49497239e-01 2.69133049e+02 1.67682653e+04 8.38060403e+00 1.20309899e+01 4.30756183e-04 4.49912123e+00 -3.80573424e-01 9.98247930e-01]]
显示的图像如下所示:
忽略零值的 Haralick 特征
在某些图像分析场景中,需要在计算 Haralick 纹理特征期间忽略特定的像素值。
一个常见的情况是当零值表示应从分析中排除的特定背景或噪声时。
在 Mahotas 中,我们可以通过将 **ignore_zeros** 参数设置为 **True** 来忽略零值。
这将忽略零值。
示例
在这里,我们尝试通过忽略其零值来计算图像的 Haralick 特征:
import mahotas import numpy as np import matplotlib.pyplot as mtplt # Load a grayscale image image = mahotas.imread('sun.png', as_grey=True).astype(np.uint8) # Compute Haralick texture features while ignoring zero pixels g = ignore_zeros=True features = mahotas.features.haralick(image,g) print(features) # Displaying the original image fig, axes = mtplt.subplots(1, 2, figsize=(9, 4)) axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].axis('off') # Displaying the haralick featured image axes[1].imshow(features, cmap='gray') axes[1].set_title('Haralick Feature') axes[1].axis('off') mtplt.show()
输出
以下是上述代码的输出:
[[ 2.67939014e-03 5.27444410e+01 9.94759846e-01 5.03271870e+03 5.82786178e-01 2.18400839e+02 2.00781303e+04 8.26680366e+00 1.06263358e+01 1.01107651e-03 2.91875064e+00 -5.66759616e-01 9.99888025e-01] [ 2.00109668e-03 1.00750583e+02 9.89991374e-01 5.03318740e+03 4.90503673e-01 2.18387049e+02 2.00319990e+04 8.32862989e+00 1.12183182e+01 7.15118996e-04 3.43564495e+00 -4.86983515e-01 9.99634586e-01] [ 2.29690324e-03 6.34944689e+01 9.93691944e-01 5.03280779e+03 5.33850851e-01 2.18354256e+02 2.00677367e+04 8.30278737e+00 1.09228656e+01 8.42614942e-04 3.16166477e+00 -5.26842246e-01 9.99797686e-01] [ 2.00666032e-03 1.07074413e+02 9.89363195e-01 5.03320370e+03 4.91882840e-01 2.18386605e+02 2.00257404e+04 8.32829316e+00 1.12259184e+01 7.18459598e-04 3.44609033e+00 -4.85960134e-01 9.99629000e-01]]
获得的图像如下所示:
计算具有第 14 个特征的 Haralick 特征
第 14 个特征,平方和方差,计算为 GLCM 元素的方差,加权为其距离的平方。它提供了有关纹理平滑度的信息。
高值表示像素对在强度和距离方面具有更多样化的分布,表示粗糙的纹理。而低值表示更均匀或更平滑的纹理。
在 Mahotas 中,我们可以通过将 **compute_14th_feature** 参数设置为 **True** 来计算 Haralick 的第 14 个特征。
示例
现在,我们正在计算图像的第 14 个 Haralick 特征:
import mahotas import numpy as np import matplotlib.pyplot as mtplt # Load a grayscale image image = mahotas.imread('tree.tiff', as_grey=True).astype(np.uint8) # Compute Haralick texture features and include the 14th feature features = mahotas.features.haralick(image, compute_14th_feature=True) print(features) # Displaying the original image fig, axes = mtplt.subplots(1, 2, figsize=(9, 4)) axes[0].imshow(image, cmap='gray') axes[0].set_title('Original Image') axes[0].axis('off') # Displaying the haralick featured image axes[1].imshow(features, cmap='gray') axes[1].set_title('Haralick Feature') axes[1].axis('off') mtplt.show()
输出
产生的输出如下所示:
[[ 9.21802518e-04 9.60973236e+02 9.37166491e-01 7.64698044e+03 2.80301553e-01 2.25538844e+02 2.96269485e+04 8.67755638e+00 1.32391345e+01 2.45576289e-04 5.30868095e+00 -2.86604804e-01 9.94019510e-01 6.66066209e+00] [ 7.16875904e-04 1.64001329e+03 8.92817748e-01 7.65058234e+03 2.39157134e-01 2.25628036e+02 2.89623161e+04 8.72580856e+00 1.36201726e+01 1.80965000e-04 5.70631449e+00 -2.37235244e-01 9.87128410e-01 6.52870916e+00] [ 8.28978095e-04 9.93880455e+02 9.35041963e-01 7.65017308e+03 2.64905787e-01 2.25647417e+02 2.96068119e+04 8.69690646e+00 1.33344285e+01 2.21103895e-04 5.38241896e+00 -2.74238405e-01 9.92754897e-01 7.00379254e+00] [ 7.11697171e-04 1.51531034e+03 9.00967635e-01 7.65058141e+03 2.38821560e-01 2.25628110e+02 2.90870153e+04 8.72404507e+00 1.35861240e+01 1.82002747e-04 5.66026317e+00 -2.41641969e-01 9.87980919e-01 6.65491250e+00]]
我们得到如下所示的图像: