量化灰度图像

时间:2017-06-06 09:16:09

标签: r image image-processing grayscale quantization

我有灰度图像,我想量化到不同的灰度级。

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

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

2 个答案:

答案 0 :(得分:1)

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

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

也可以压缩糟糕的图像。

答案 1 :(得分:1)

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)

enter image description here