2017-06-06 119 views
2

我有我想要量化到不同灰度級別的灰度圖像。量化灰度圖像

更準確地說,在EBImage package中,我們有一個功能equalize(),它有一個參數levels。我們可以設置levels值爲256或128或64等來量化我們的灰度圖像。 (但equalize()函數將執行給定灰度圖像的直方圖均衡,這對於我目前的情況並不是首選)

有人可以提出一個公式或函數,我們可以用它來改變灰度級數給出灰度圖像。

回答

1

首先轉換格式的東西連續。 現在是僞代碼。

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

也可以壓縮的圖像,糟糕的方式。

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