Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 量化灰度图像_R_Image_Image Processing_Grayscale_Quantization - Fatal编程技术网

R 量化灰度图像

R 量化灰度图像,r,image,image-processing,grayscale,quantization,R,Image,Image Processing,Grayscale,Quantization,我有灰度图像,我想量化到不同的灰度 更准确地说,在中,我们有一个函数equalize(),它有一个参数levels。我们可以将级别值设置为256、128或64等,以量化灰度图像。(但是equalize()函数将对给定的灰度图像执行直方图均衡化,这在我目前的情况下不是首选) 有人能提出一个公式或函数,我们可以用它来改变给定灰度图像中的灰度级数吗 首先将格式转换为连续格式。 现在是伪代码 intx=(int)(值/(量化)); (新格式)y=x*量化 也可以通过这种糟糕的方式压缩图像。EBImage

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

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


有人能提出一个公式或函数,我们可以用它来改变给定灰度图像中的灰度级数吗

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

intx=(int)(值/(量化));
(新格式)y=x*量化


也可以通过这种糟糕的方式压缩图像。

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

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)