我有我想要量化到不同灰度級別的灰度圖像。量化灰度圖像
更準確地說,在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)