首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >量化灰度图像

量化灰度图像
EN

Stack Overflow用户
提问于 2017-06-06 17:16:09
回答 2查看 1.2K关注 0票数 2

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

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

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

EN

回答 2

Stack Overflow用户

发布于 2017-06-06 17:40:28

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

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

用这种糟糕的方式压缩图像也是可能的。

票数 1
EN

Stack Overflow用户

发布于 2017-06-06 18:34:04

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

代码语言:javascript
复制
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)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44385982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档