【问题标题】:Quantize grayscale images量化灰度图像
【发布时间】:2017-06-06 09:16:09
【问题描述】:

我有想要量化为不同灰度级别的灰度图像。

更准确地说,在EBImage package 中,我们有一个函数equalize(),它有一个参数levels。我们可以将levels 值设置为 256 或 128 或 64 等来量化我们的灰度图像。 (但equalize() 函数将对给定的灰度图像执行直方图均衡化,这对于我目前的情况不是首选)

有人可以建议一个公式或函数,我们可以使用它来更改给定灰度图像中的灰度级数。

【问题讨论】:

    标签: r image image-processing grayscale quantization


    【解决方案1】:

    首先将格式转换为连续的。 现在是伪代码。

    int x = (int) (value / (Quantisation)); (new format) y = x * Quantisation;

    也可以用糟糕的方式压缩图像。

    【讨论】:

      【解决方案2】:

      EBImage 中默认的图像数据表示是一个介于 0 和 1 之间的连续范围。为了将图像量化为给定数量的levels,首先将其转换为范围内的整数0:(levels-1),然后返回到0:1,如以下示例中的quantize 函数。

      library(EBImage)
      
      ## sample grayscale image
      x = readImage(system.file("images", "sample.png", package="EBImage"))
      
      ## function for performing image quantization
      quantize = function(img, levels) round(img * (levels-1)) / (levels-1)
      
      ## quantize the image
      y = quantize(x, levels = 8) 
      
      ## show the result
      display(y)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-04
        • 2020-08-25
        • 2013-05-17
        相关资源
        最近更新 更多