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 - 局部二元模式 Mahotas - 阈值邻接统计 Mahotas - Haralic 特征 Mahotas - 标记区域的权重 Mahotas - Zernike 特征 Mahotas - Zernike 矩 Mahotas - 等级过滤器 Mahotas - 2D 拉普拉斯过滤器 Mahotas - 多数过滤器 Mahotas - 均值滤波器 Mahotas - 中值滤波器 Mahotas - Otsu 方法 Mahotas - 高斯滤波 Mahotas - 命中与未命中变换 Mahotas - 标记最大值数组 Mahotas - 图像平均值 Mahotas - SURF 密集点 Mahotas - SURF 积分 Mahotas - Haar 变换 Mahotas - 突出显示图像最大值 Mahotas - 计算线性二进制模式 Mahotas - 获取标签边框 Mahotas - 逆 Haar 变换 Mahotas - Riddler-Calvard 方法 Mahotas - 标记区域的大小 Mahotas - 模板匹配 Mahotas - 加速稳健特征 Mahotas - 移除带边框的标签 Mahotas - Daubechies 小波 Mahotas - Sobel 边缘检测



Mahotas - 图像的偏心率

图像的偏心率是指图像中物体或区域形状的拉长程度。它定量衡量了形状与完美圆形的偏差程度。

偏心率值介于 0 和 1 之间,其中 −

  • 0 − 表示完美圆形。偏心率为 0 的物体伸长率最小,并且完全对称。

  • 接近 1 − 表示形状越来越拉长。当偏心率值接近 1 时,形状会变得更细长,不再是圆形。

Mahotas 中图像的偏心率

我们可以使用 'mahotas.features.eccentricity()' 函数计算 Mahotas 中图像的偏心率。

如果偏心率值较高,则表示图像中的形状拉伸或拉长较多。另一方面,如果偏心率值较低,则表示形状更接近完美的圆形或拉长较少。

mahotas.features.eccentricity() 函数

mahotas 中的 eccentricity() 函数可帮助我们测量图像中形状的拉伸或拉长程度。此函数以单通道图像作为输入,并返回 0 到 1 之间的浮点数。

语法

以下是 mahotas − 中 eccentricity() 函数的基本语法

mahotas.features.eccentricity(bwimage)

其中,'bwimage' 是解释为布尔值的输入图像。

示例

在下面的示例中,我们正在寻找图像的偏心率 −

import mahotas as mh
import numpy as np
from pylab import imshow, show
image = mh.imread('nature.jpeg', as_grey = True)
eccentricity= mh.features.eccentricity(image)
print("图像偏心率 =", eccentricity)

输出

上述代码的输出如下 −

图像偏心率 = 0.8902515127811386

使用二值图像计算偏心率

要将灰度图像转换为二值格式,我们使用一种称为阈值的技术。此过程有助于我们将图像分成两部分 − 前景(白色)和背景(黑色)。

我们通过选择一个阈值(表示像素强度)来实现这一点,该阈值充当截止点。

Mahotas 通过提供">"运算符为我们简化了此过程,该运算符允许我们将像素值与阈值进行比较并创建二值图像。准备好二值图像后,我们现在可以计算偏心率了。

示例

在这里,我们尝试计算二值图像的偏心率 −

import mahotas as mh
image = mh.imread('nature.jpeg', as_grey=True)
# 根据固定阈值将图像转换为二值
threshold = 128
binary_image = image > 阈值
# 计算偏心率
eccentricity = mh.features.eccentricity(binary_image)
print("偏心率:", eccentricity)

输出

执行上述代码后,我们得到以下输出 −

偏心率:0.7943319646935899

使用骨架化计算偏心率

骨架化,也称为细化,是一种旨在减少物体形状或结构的过程,将其表示为细骨架。我们可以使用 mahotas 中的 thin() 函数实现此目的。

mahotas.thin() 函数以二进制图像作为输入,其中感兴趣的对象由白色像素(像素值为 1)表示,背景由黑色像素(像素值为 0)表示。

我们可以使用骨架化通过将图像简化为其骨架表示来计算图像的偏心率。

示例

现在,我们正在使用骨架化计算图像的偏心率 −

import mahotas as mh
import matplotlib.pyplot as plt
# 读取图像并将其转换为灰度
image = mh.imread('tree.tiff')
grey_image = mh.colors.rgb2grey(image)
# 对图像进行骨架化
skeleton = mh.thin(grey_image)
# 计算骨架化图像的偏心率
eccentricity = mh.features.eccentricity(skeleton)
# 打印偏心率
print(eccentricity)
# 创建带有子图的图形
fig, axis = plt.subplots(1, 2, figsize=(7,5 ))
# 显示原始图像
axes[0].imshow(image)
axes[0].set_title('Original Image')
axes[0].axis('off')
# 显示骨架化图像
axes[1].imshow(skeleton, cmap='gray')
axes[1].set_title('Skeletonized Image')
axes[1].axis('off')
# 调整布局并显示图
plt.tight_layout()
plt.show()

输出

得到的输出如下图所示 −

0.8975030064719701

显示的图像如下图所示 −

Calculating Eccentricity