【问题标题】:Retrieve the pixel values of an image with Haskell使用 Haskell 检索图像的像素值
【发布时间】:2012-10-05 19:00:03
【问题描述】:

是否有可用的方法或库可以加载图像(jpeg、png 等)并将该图像的像素值分配到列表或矩阵中?我想做一些关于图像和模式识别的实验。

我们将不胜感激。

【问题讨论】:

    标签: haskell image-processing libraries image-recognition


    【解决方案1】:

    这是一个新的Haskell Image Processing library,它使用 JuicyPixels 进行编码,为您提供了以非常简单的方式读取和写入所有支持的格式并以您可以想象的任何方式操作它们的接口。就像一个简单的例子说明它是多么容易:

    >>> img <- readImageRGB "image.jpg"
    >>> writeImage "image90.png" $ rotate90 img
    

    上面会读取RGB色彩空间的JPG图片,顺时针旋转90度,保存为PNG图片。

    哦对了,它也可以使用 Repa,所以你也可以免费获得并行处理。

    【讨论】:

      【解决方案2】:

      您可以使用 JuicyPixels,这是一个用于图像加载的原生 Haskell 库。这也很容易转换为 REPA(手动或使用 JuicyPixesl-repa)。

      【讨论】:

      • Thomas,你知道我在哪里可以找到一些用法示例吗?文档对我来说读起来很神秘。
      • 如果不知道这个任务,我就帮不上什么忙了。我建议从func file = onImg someRepaFunction `fmap` readImage file 开始。使用该行,您应该只需要定义someRepaFunction
      • 很抱歉打扰您。我不知道 repa 是什么,并且由于某些 -dev C 库依赖关系,我无法在 Windows 中安装 repa-devil。我的耐心终于用完了。我喜欢 Haskell,但我不能再处理这个了。再次感谢您的宝贵时间。
      • Repa 是一个数组库,您可以在网上找到教程 - 一个链接在下面的答案中。如果您正在寻找更多实时帮助,那么我建议您尝试 IRC(freenode.net 上的#haskell)
      【解决方案3】:

      我过去曾为此使用过repa-devil 包。它允许您使用 Developer's Image Library (DevIL) 处理多种格式。您可以读取和写入您可能关心的所有格式。

      实际图像数据以Repa 数组的形式给出。这是一个很棒的数组操作库,可以很容易地编写并行代码。

      【讨论】:

      • 感谢您的回复和帮助。
      • 给自己(和其他人)的一个提示:“缺少 C 库:IL”很可能是 libdevil-dev。
      【解决方案4】:
      1. GTK 支持加载和保存 JPEG 和 PNG。 [AFAIK,虽然没有其他格式。] 有一个名为 Gtk2hs 的 Haskell 绑定。它很好地支持 vector 图形,但 bitmap 图形虽然受支持,但并不特别容易理解。所以我写了AC-EasyRaster-GTK,它将GTK包装在一个更友好的界面中。 (尽管它仍然需要Gtk2hs。)唯一真正的缺点是Gtk2h 在Windows 上设置起来有点繁琐。 (而且安装一个完整的 GUI 工具包只是为了加载和保存图像文件可以说是矫枉过正。)

      2. 我收集到“GD”库支持编写多种图像格式,并且非常小而简单。我相信 Hackage 也有用于 GD 的 Haskell 绑定。我没有亲自尝试过。

      3. 有一种名为 PPM 的文件格式被故意设计成非常容易实现(它是一个很小的标题,然后是一个像素数组),因此 Hackage 上至少有十几个包可以实现它(包括我自己的AC-PPM)。还有很多程序可以显示和/或转换这种格式的图像。

      【讨论】:

        【解决方案5】:

        试试repa 库 .还有一个小教程here

        【讨论】:

        • 非常有用的教程。我已将其保存以供离线查看。谢谢。
        猜你喜欢
        • 2012-02-28
        • 1970-01-01
        • 2010-11-05
        • 2011-02-05
        • 2015-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        相关资源
        最近更新 更多