【问题标题】:Histogram of Oriented Gradients --- In Haskell, Yippee?定向梯度直方图 --- 在 Haskell,Yippee 中?
【发布时间】:2011-09-21 19:01:37
【问题描述】:

我从未编写过任何一行 Haskell 代码(除了我的 xmonad 配置文件中的随机内容),但我认为学习函数式编程的完美方法就是实践。我想编写一个程序来读取任意文件类型和大小的图像文件,并读取像素位置列表。然后它应该在以每个输入像素列表为中心的窗口中计算定向梯度的直方图,并且需要将这些直方图写出来。我将从小事开始,所以假设我只使用文本文件作为输出。

有哪些在线资源可用于学习如何执行此操作。特别是如何读取图像、使用像素数组等。我不介意自己构建基础设施;但我希望这是一个项目,一旦我完成它,我将能够合理地为科学计算任务制作我自己的 Haskell 子程序。任何其他想法/建议都非常受欢迎和鼓励,即使你认为这个想法很愚蠢或者你是那些奇怪的 OCaml 人之一。我的背景都是 Python。在 Python 中使用 NumPy 很容易做到这一点,但我想学习 Haskell 的科学!

【问题讨论】:

  • 由于您以前从未编写过任何 Haskell,我建议您首先查看this question 的答案。

标签: haskell image-processing histogram


【解决方案1】:

如果您以前从未编写过任何 Haskell 代码,我不建议您从玩二进制数据操作开始,因为您通常会与库斗争,而不是学习语言本身。也许你应该先看看Learn You a Haskell、Real World Haskell 或Yet Another Haskell Tutorial。

如果您真的希望继续该项目,我建议您使用PGM,因为它是一种非常简单的图像格式。我最近在 Haskell 中为 PGM 实现了一个解析器,并且 我最大的困难是理解如何在 Haskell 中处理二进制数据。以下是一些对我有帮助的资源:

【讨论】:

    【解决方案2】:

    我的(大师级的)学生上周才实施了这个。也许您可以在他的implementation of HOG 中查看提示。里面还有一个实时 CPU 实现。

    但它仍在进行中。

    【讨论】:

    • 非常感谢。你和你的学生在哪里工作?我现在是哈佛大学计算机视觉专业的博士生……我总是渴望结识其他研究人员并建立联系。我的网页是people.seas.harvard.edu/~ely ...再次感谢!
    • 我们在芬兰于韦斯屈莱大学工作。我认为除了我们之外,没有多少疯狂的团队可以在 Haskell 中做机器视觉。
    • 你们斯堪的纳维亚人总是很欣赏精心设计的东西。 Haskell 似乎是一种编程语言的明显选择 :)
    猜你喜欢
    • 2011-08-01
    • 2013-06-22
    • 2017-12-10
    • 2015-01-21
    • 2013-11-08
    • 2011-11-30
    • 2018-11-03
    • 2012-07-15
    相关资源
    最近更新 更多