我有我想要量化到不同灰度级别的灰度图像。量化灰度图像
更准确地说,在EBImage package中,我们有一个功能equalize()
,它有一个参数levels
。我们可以设置levels
值为256或128或64等来量化我们的灰度图像。 (但equalize()
函数将执行给定灰度图像的直方图均衡,这对于我目前的情况并不是首选)
有人可以提出一个公式或函数,我们可以用它来改变灰度级数给出灰度图像。
我有我想要量化到不同灰度级别的灰度图像。量化灰度图像
更准确地说,在EBImage package中,我们有一个功能equalize()
,它有一个参数levels
。我们可以设置levels
值为256或128或64等来量化我们的灰度图像。 (但equalize()
函数将执行给定灰度图像的直方图均衡,这对于我目前的情况并不是首选)
有人可以提出一个公式或函数,我们可以用它来改变灰度级数给出灰度图像。
首先转换格式的东西连续。 现在是伪代码。
int x = (int) (value/(Quantisation)); (new format) y = x * Quantisation;
也可以压缩的图像,糟糕的方式。
在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)