和上文说的一样,使用Python实现。
采样和量化我就不多做叙述了,下面我就讲讲如何实现采样和量化。
对于采样,就是图像中一块区域的像素点取样为一个像素块。而对于这个像素块的(R,G,B)值,通常是取这个像素块中所有像素点的平均值来得到的,而为了方便实现,我使用了这个像素块左上角的那个点作为这个像素块的(R,G,B)值。
采样:
#采样
def sampling():
global samplingImage
x = int(samplingText.get())
h,w = greyyedImage.size
samplingImage = Image.new('L',(h,w))
opix = greyyedImage.load()
npix = samplingImage.load()
for i in range (h):
for j in range (w):
npix[i,j] = opix[i - i % x,j - j % x]
showPicture(samplingImage , newCanvas)
histogram(samplingImage , newHisCanvas)
量化:
#量化
def quantization():
global quantizationImage
m = int(quantizationText.get())
h,w = samplingImage.size
quantizationImage = Image.new(&