我们的使命#

scikit-image 的目标是成为 Python 中科学图像分析的参考库。 我们通过以下方式实现这一目标:

  • 易于使用和安装。 我们在接受新的依赖项时非常谨慎,有时会删除现有的依赖项,或者使其成为可选的。我们 API 中的所有函数都有详尽的文档字符串,阐明了预期的输入和输出。

  • 提供一致的 API。在函数签名中,概念上相同的参数具有相同的名称和位置。

  • 确保正确性。测试覆盖率接近 100%,代码在被包含到库中之前至少由两名核心开发人员进行审查。

  • 关心用户的数据。我们有一个函数式 API,除非明确指示,否则不会修改输入数组。

  • 通过大量的教学文档,促进图像处理教育

我们的价值观


  • 我们具有包容性。 我们继续欢迎和指导那些做出首次贡献的新人。

  • 我们是社区驱动的。关于 API 和功能的决策是由用户的需求驱动的,而不是由核心团队的突发奇想驱动的。(请参阅SKIP 1 — scikit-image 治理和决策。)

  • 我们主要为科学应用服务,而不是像 Photoshop 或 GIMP 那样的“消费者”图像编辑。 这通常意味着优先考虑 n 维数据支持,并拒绝实现几乎没有科学价值的“花哨”过滤器。

  • 我们重视简单、可读的实现,而不是获得每一丝性能。对于新手和维护者来说,易于理解的可读代码使得贡献新代码以及防止错误变得更加容易。这意味着,例如,如果它将代码行数减少一半,我们宁愿接受 20% 的减速。

  • 我们重视教育和文档。所有函数都应具有 NumPy 风格的文档字符串,最好带有示例,以及展示该函数如何在科学应用中使用的图库示例。核心开发人员在完成文档示例方面发挥着积极作用。

  • 我们不做魔法。 我们使用 NumPy 数组而不是花哨的门面对象 [1],我们更喜欢教育用户而不是代替他们做出决策。这并不排除合理的默认值

本文档#

Python 之禅和 PEP8 指导大多数 Python 代码中的风格和实现细节的方式类似,本指南旨在指导关于 scikit-image 未来的决策,无论是代码风格、是否接受新功能,还是是否承担新的依赖项等。

参考资料#

要了解有关本文档历史的更多信息,请阅读以下内容