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 - 图像椭圆轴

椭圆是一种几何形状,定义为围绕两个焦点的平面上的曲线,使得到两个焦点的距离之和对于曲线上的每个点都是恒定的。

椭圆的长轴是指最长的直径,它穿过椭圆上的两个最远点。另一方面,短轴是最短的直径,垂直于长轴,在椭圆的中心与其相交。

这些轴提供有关对象或区域的大小、方向和纵横比的信息。

Mahotas 中的图像椭圆轴

在 Mahotas 中处理椭圆时,轴被指定为两个值的元组−半长轴和半短轴的长度。

Mahotas 提供 mahotas.ellipse_axes() 函数,可轻松检测图像中的椭圆并获取其长轴和短轴长度。

使用 ellipse.axes() 函数

Mahotas 中的 ellipse_axes() 函数用于检测图像中的椭圆。此函数接受二进制图像作为输入,并返回长轴和短轴的长度。

语法

以下是在 Mahotas − 中查找图像椭圆轴的基本语法

mahotas.features.ellipse_axes(bwimage)

其中,'bwimage' 是图像的单通道数组,解释为布尔值。

示例

在下面的示例中,我们将学习如何在 mahotas − 中查找图像椭圆轴

import mahotas as mh
import numpy as np
image=mh.imread('nature.jpeg', as_grey = True)
smajor,sminor = mh.features.ellipse_axes(image)
print(smajor,sminor)
输出

以下是上述代码的输出 −

739.0056545212358 336.5943563176811

将椭圆拟合到一组点

我们还可以通过在图像中生成随机点将椭圆拟合到特定的兴趣点。使用 NumPy 库中的 np.random.rand() 函数以 0 到 1 之间的均匀分布生成随机点。每个随机数代表特定轴上的坐标值。

为确保生成的点位于图像边界内 −

  • 我们将随机生成的值乘以图像的形状。
  • 图像的形状将图像的尺寸表示为一个元组 (高度、宽度)。
  • 通过将随机生成的值乘以图像的形状,我们可以有效地缩放点以匹配图像的尺寸。

结果点表示为 (x, y) 坐标,其中 x 表示图像的列索引,y 表示图像的行索引。

示例

在这里,我们试图将椭圆拟合到一组给定的点 −

import numpy as np
import mahotas as mh
image = mh.imread('tree.tiff', as_grey=True)
# 生成一组随机点
np.random.seed(0)
points = np.random.rand(87, 2) * image.shape[:2]
# 将椭圆拟合到点集
# 计算轴
major_axis, minor_axis = mh.features.ellipse_axes(points)
print(major_axis, minor_axis)

输出

上述代码的输出如下 −

50.226155204899634 1.0

使用 ROI 将椭圆拟合到灰度图像

我们可以通过生成随机兴趣点,使用感兴趣区域 (ROI) 将椭圆拟合到灰度图像。然后,我们需要创建一个二值图像,其中的点设置为白色(像素值 255),背景为黑色(像素值 0)。

我们可以通过 − 来实现这一点

  • 初始化一个与原始图像形状相同的零数组。
  • 然后,将数组中兴趣点的索引设置为 255,有效地将这些位置标记为兴趣点。
  • 这个二值图像使我们能够在拟合椭圆时隔离并专注于我们想要分析的特定点,使我们能够根据所选点准确估计椭圆的参数。

示例

在这里,我们使用感兴趣区域将椭圆拟合到灰度图像 −

import numpy as np
import mahotas as mh
image = mh.imread('sun.png', as_grey=True)
# 生成带有兴趣点的二进制图像
np.random.seed(0)
points = np.random.rand(100, 2) * image.shape[:2]
points = points.astype(int)
binary_image = np.zeros(image.shape, dtype=np.uint8)
binary_image[points[:, 0], points[:, 1]] = 255
# 将椭圆拟合到兴趣点
major_axis, minor_axis = mh.features.ellipse_axes(binary_image)
print(major_axis, minor_axis)

输出

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

722.1261184969184 479.52790970346524