跳转到主要内容

Mahotas: 计算机视觉库

项目描述

Mahotas

Python计算机视觉库

Mahotas是一个库,包含快速计算机视觉算法(所有算法都使用C++实现以提高速度),这些算法在numpy数组上运行。

GH Actions Status Coverage Status License Downloads Install with Conda Install with Anaconda

支持Python版本2.7和3.4+。

显著的算法

Mahotas目前拥有超过100个图像处理和计算机视觉函数,并且还在不断增长。

发布计划大致为每月发布一次,每次发布都带来新的功能和提高的性能。尽管接口非常稳定,但使用多年前的mahotas版本编写的代码在当前版本中仍然可以正常工作,但会更快(一些接口已弃用,将在几年后删除,但在此期间,您只会收到警告)。在少数不幸的情况下,旧代码中存在错误,您的结果将得到改善。

如果您在出版物中使用它,请引用 mahotas 论文(详情请见下文 引用 部分)。

示例

这是一个简单的示例(使用与 mahotas 一起提供的示例文件),演示如何使用上述阈上区域作为种子调用 watersheds(我们使用 Otsu 算法来定义阈值)。

# import using ``mh`` abbreviation which is common:
import mahotas as mh

# Load one of the demo images
im = mh.demos.load('nuclear')

# Automatically compute a threshold
T_otsu = mh.thresholding.otsu(im)

# Label the thresholded image (thresholding is done with numpy operations
seeds,nr_regions = mh.label(im > T_otsu)

# Call seeded watershed to expand the threshold
labeled = mh.cwatershed(im.max() - im, seeds)

下面是一个使用 mahotas.distance 的非常简单的示例(该函数计算距离图)

import pylab as p
import numpy as np
import mahotas as mh

f = np.ones((256,256), bool)
f[200:,240:] = False
f[128:144,32:48] = False
# f is basically True with the exception of two islands: one in the lower-right
# corner, another, middle-left

dmap = mh.distance(f)
p.imshow(dmap)
p.show()

(位于 mahotas/demos/distance.py。)

如何调用阈值函数

import mahotas as mh
import numpy as np
from pylab import imshow, gray, show, subplot
from os import path

# Load photo of mahotas' author in greyscale
photo = mh.demos.load('luispedro', as_grey=True)

# Convert to integer values (using numpy operations)
photo = photo.astype(np.uint8)

# Compute Otsu threshold
T_otsu = mh.otsu(photo)
thresholded_otsu = (photo > T_otsu)

# Compute Riddler-Calvard threshold
T_rc = mh.rc(photo)
thresholded_rc = (photo > T_rc)

# Now call pylab functions to display the image
gray()
subplot(2,1,1)
imshow(thresholded_otsu)
subplot(2,1,2)
imshow(thresholded_rc)
show()

如您所见,我们依赖于 numpy/matplotlib 来执行许多操作。

安装

如果您使用 conda,您可以使用以下命令从 conda-forge 安装 mahotas:

conda config --add channels conda-forge
conda install mahotas

从源码编译

您需要 python(当然),numpy 和一个 C++ 编译器。然后您应该可以使用

pip install mahotas

您可以通过运行以下命令来测试您的安装:

python -c "import mahotas as mh; mh.test()"

如果您遇到问题,手册中有关于 mahotas 安装的更多详细文档,包括如何找到为几个平台预构建的版本。

引用

如果您在已发表的出版物中使用 mahotas,请引用以下内容:

Luis Pedro Coelho Mahotas: Open source software for scriptable computer vision in Journal of Open Research Software, vol 1, 2013. [DOI]

Bibtex 格式

@article{mahotas, author = {Luis Pedro Coelho}, title = {Mahotas: Open source software for scriptable computer vision}, journal = {Journal of Open Research Software}, year = {2013}, doi = {https://dx.doi.org/10.5334/jors.ac}, month = {July}, volume = {1} }

您可以使用 mahotas.citation() 函数访问此信息。

开发

开发在 github(https://github.com/luispedro/mahotas)上。

在编译之前设置 DEBUG 环境变量可以获取调试版本

export DEBUG=1
python setup.py test

将其设置为 2 以获取额外的检查

export DEBUG=2
python setup.py test

请谨慎使用此版本,除非您正在追踪错误。调试级别 2 非常慢,因为它添加了许多运行时检查。

mahotas 源代码中提供的 Makefile 也很有用。《make debug》将创建一个调试版本。《make fast》将创建一个非调试版本(您需要在之间运行 make clean)。《make test》将运行测试套件。

链接 & 联系方式

文档: https://mahotas.readthedocs.io/

问题追踪器: github mahotas issues

邮件列表: 使用 pythonvision 邮件列表 提出问题、提交错误等。或者在 stackoverflow(标签 mahotas) 上提问。

主要作者 & 维护者: Luis Pedro Coelho(在 twittergithub 上关注)。

Mahotas 还包括 Zachary Pincus [来自 scikits.image]、Peter J. Verveer [来自 scipy.ndimage]、Davis King [来自 dlib]、Christoph Gohlke 以及 其他人 的代码。

mahotas 生物图像信息学介绍

有关 Python 中计算机视觉的更一般性讨论,pythonvision 邮件列表 是一个更好的场所,并生成供未来他人参考的公共讨论日志。您可以使用它来提问有关 mahotas 或 Python 中一般计算机视觉的问题。

最近更改

版本 1.4.18(2024 年 7 月 18 日)

  • 修复了 Haralick 特征和 NumPy 2 中的错误(感谢 @Czaki,见 #150

版本 1.4.17(2024 年 7 月 13 日)

  • 修复了导致 mahotas 在 Windows 上无法工作的错误

版本 1.4.16(2024 年 7 月 3 日)

  • 针对 NumPy 2 的更新
  • 为 freeimage 添加弃用警告

版本 1.4.15(2024年3月24日)

  • 更新构建系统(感谢 @Czaki,见 #147)

版本 1.4.14(2024年3月24日)

  • 修复 C++17 代码(问题 #146)

版本 1.4.13(2022年6月28日)

  • 修复 freeimage 测试(并使 freeimage 加载更健壮,见 #129)
  • 添加 GIL 固定(这在新版 NumPy 版本中触发了崩溃)

版本 1.4.12(2021年10月14日)

  • 更新到较新的 NumPy
  • 为 Python 3.9 和 3.10 构建轮子

版本 1.4.11(2020年8月16日)

  • 将测试转换为 pytest
  • 修复 PyPy 上的测试

版本 1.4.10(2020年6月11日)

  • 自动构建轮子(由 nathanhillyer 提交的 PR #114)

版本 1.4.9(2019年11月12日)

  • 修复 FreeImage 检测(问题 #108)

版本 1.4.8(2019年10月11日)

  • 修复共生矩阵计算(@databaaz 的补丁)

版本 1.4.7(2019年7月10日)

  • 修复 Windows 上的编译问题

版本 1.4.6(2019年7月10日)

  • 使 watershed 在 >2³¹ 个体素时也能工作(问题 #102)
  • 从演示中移除 milk
  • 通过在 cwatershed()majority_filter() 和颜色转换中避免不必要的数组复制来提高性能
  • 修复插值中的错误

版本 1.4.5(2018年10月20日)

  • 升级代码以使用较新的 NumPy API(问题 #95)

版本 1.4.4(2017年11月5日)

  • 修复 Bernsen 阈值中的错误(问题 #84)

版本 1.4.3(2016年10月3日)

  • 修复发行版(添加缺少的 README.md 文件)

版本 1.4.2(2016年10月2日)

  • 修复 resize_to 返回确切请求的大小
  • 修复在具有负值的数组上计算纹理时的硬崩溃(问题 #72)
  • distance 参数添加到 Haralick 特征(Guillaume Lemaitre 的拉取请求 #76)

版本 1.4.1(2015年12月20日)

  • 添加 filter_labeled 函数
  • 修复 32 位平台和较旧版本的 numpy 上的测试

版本 1.4.0(2015年7月8日)

  • 添加 mahotas-features.py 脚本
  • 添加 citation() 函数的简短参数
  • 添加 thin() 函数的 max_iter 参数
  • 修复当没有背景时 labeled.bbox 的错误(由 Daniel Haehn 报告的问题 #61)
  • bbox 现在允许维度大于 2(包括使用 as_sliceborder 参数时)
  • 扩展 croptobbox 以支持维度大于 2
  • 将 use_x_minus_y_variance 选项添加到 Haralick 特征
  • 添加 lbp_names 函数

版本 1.3.0(2015年4月28日)

  • 改进 freeimage.write_multipage 的内存处理
  • 修复 moments 参数交换
  • 添加 labeled.bbox 函数
  • 将 return_mean 和 return_mean_ptp 参数添加到 haralick 函数
  • 添加高斯差分滤波器(Jianyu Wang 提供)
  • 添加拉普拉斯滤波器(Jianyu Wang 提供)
  • 修复 median_filter 在传递不匹配参数时的崩溃
  • 修复 gaussian_filter1d 的 ndim > 2

版本 1.2.4(2014年12月23日)

  • 添加基于 PIL 的 IO

版本 1.2.3(2014年11月8日)

  • 在顶层导出 mean_filter
  • 修复 Zernike 瞬时计算(Sergey Demurin 报告)
  • 修复在没有 npy_float128 的平台上的编译(Gabi Davar 的补丁)

版本 1.2.2(2014年10月19日)

  • 将 minlength 参数添加到 labeled_sum
  • 将 regmax/regmin 通用化以支持浮点图像
  • 允许 cwatershed() 接受浮点输入
  • 正确检查 float16 & float128 输入
  • 将 sobel 转换为纯函数(即,不归一化其输入)
  • 修复 sobel 过滤

版本 1.2.1(2014年7月21日)

  • 在 setup.py 中显式设置 numpy.include_dirs() [Andrew Stromnov 的补丁]

版本 1.2(2014年7月17日)

  • 在 mahotas 命名空间级别导出 locmax|locmin
  • 将 ellipse_axes 从 eccentricity 代码中分离出来,因为它可以作为独立的功能使用
  • 添加 find() 函数
  • 添加 mean_filter() 函数
  • 修复 cwatershed() 溢出可能性
  • 使标记函数在接收更多类型时更加灵活
  • 修复 close_holes() 在 nD 图像中的崩溃(对于 n > 2)
  • 删除 matplotlibwrap
  • 使用标准的 setuptools 构建(而不是 numpy.distutils)
  • 添加 overlay() 函数

版本 1.1.1(2014年7月4日)

  • 修复 close_holes() 在 nD 图像中的崩溃(对于 n > 2)

1.1.0(2014年2月12日)

  • 更好的错误检查
  • 使用顺序 1 修复整数图像的插值
  • 添加 resize_to & resize_rgb_to
  • 添加 coveralls 覆盖率
  • 修复 SLIC 超像素连接性
  • 添加 remove_regions_where 函数
  • 修复卷积中的硬崩溃
  • 修复 convolve1d 中的轴处理
  • 将归一化添加到矩计算中

查看 ChangeLog 了解旧版本。

许可证

FOSSA Status

项目详情


下载文件

下载适合您平台文件。如果您不确定要选择哪一个,了解更多关于 安装包 的信息。

源分布

mahotas-1.4.18.tar.gz (1.5 MB 查看哈希值)

上传

构建分发

mahotas-1.4.18-pp39-pypy39_pp73-win_amd64.whl (1.7 MB 查看哈希值)

上传 PyPy Windows x86-64

mahotas-1.4.18-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

上传 PyPy manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-pp39-pypy39_pp73-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 PyPy macOS 11.0+ ARM64

mahotas-1.4.18-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (1.8 MB 查看哈希值)

上传于 PyPy macOS 10.15+ x86-64

mahotas-1.4.18-pp38-pypy38_pp73-win_amd64.whl (1.7 MB 查看哈希值)

上传于 PyPy Windows x86-64

mahotas-1.4.18-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.9 MB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-pp38-pypy38_pp73-macosx_11_0_arm64.whl (1.7 MB 查看哈希值)

上传于 PyPy macOS 11.0+ ARM64

mahotas-1.4.18-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.8 MB 查看哈希值)

上传于 PyPy macOS 10.9+ x86-64

mahotas-1.4.18-cp312-cp312-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

mahotas-1.4.18-cp312-cp312-win32.whl (1.7 MB 查看哈希值)

上传于 CPython 3.12 Windows x86

mahotas-1.4.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

mahotas-1.4.18-cp312-cp312-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

mahotas-1.4.18-cp311-cp311-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

mahotas-1.4.18-cp311-cp311-win32.whl (1.7 MB 查看哈希值)

上传于 CPython 3.11 Windows x86

mahotas-1.4.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

mahotas-1.4.18-cp311-cp311-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

mahotas-1.4.18-cp310-cp310-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

mahotas-1.4.18-cp310-cp310-win32.whl (1.7 MB 查看哈希值)

上传于 CPython 3.10 Windows x86

mahotas-1.4.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

mahotas-1.4.18-cp310-cp310-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

mahotas-1.4.18-cp39-cp39-win_amd64.whl (1.7 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

mahotas-1.4.18-cp39-cp39-win32.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.9 Windows x86

mahotas-1.4.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB 查看哈希值)

上传时间: CPython 3.9 manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp39-cp39-macosx_11_0_arm64.whl (1.8 MB 查看哈希值)

上传时间: CPython 3.9 macOS 11.0+ ARM64

mahotas-1.4.18-cp39-cp39-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.9 macOS 10.9+ x86-64

mahotas-1.4.18-cp38-cp38-win_amd64.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86-64

mahotas-1.4.18-cp38-cp38-win32.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.8 Windows x86

mahotas-1.4.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.8 MB 查看哈希值)

上传时间: CPython 3.8 manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp38-cp38-macosx_11_0_arm64.whl (1.8 MB 查看哈希值)

上传时间: CPython 3.8 macOS 11.0+ ARM64

mahotas-1.4.18-cp38-cp38-macosx_10_9_x86_64.whl (1.9 MB 查看哈希值)

上传时间: CPython 3.8 macOS 10.9+ x86-64

mahotas-1.4.18-cp37-cp37m-win_amd64.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.7m Windows x86-64

mahotas-1.4.18-cp37-cp37m-win32.whl (1.7 MB 查看哈希值)

上传时间: CPython 3.7m Windows x86

mahotas-1.4.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看散列)

上传于 CPython 3.7m manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp37-cp37m-macosx_10_9_x86_64.whl (1.9 MB 查看散列)

上传于 CPython 3.7m macOS 10.9+ x86-64

mahotas-1.4.18-cp36-cp36m-win_amd64.whl (1.7 MB 查看散列)

上传于 CPython 3.6m Windows x86-64

mahotas-1.4.18-cp36-cp36m-win32.whl (1.7 MB 查看散列)

上传于 CPython 3.6m Windows x86

mahotas-1.4.18-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB 查看散列)

上传于 CPython 3.6m manylinux: glibc 2.17+ x86-64

mahotas-1.4.18-cp36-cp36m-macosx_10_9_x86_64.whl (1.9 MB 查看散列)

上传于 CPython 3.6m macOS 10.9+ x86-64

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面