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