我用python编写了一个用于图像抖动的代码,它对某些图像效果很好,但对于某些图像,它在白色区域生成了不必要的颜色。在#IMAGE DITHERING BASED ON Floyd-Steinberg METHOD
#author : bharath kotari
#date :18-1-2018
import cv2
import numpy as np
def set_pixel(im,x,y,new):
im[x,y]=new
def quantize(im):
for y in range(0,height-1):
for x in range(1,width-1):
old_pixel=im[x,y]
if old_pixel<127:
new_pixel=0
else:
new_pixel=255
set_pixel(im,x,y,new_pixel)
quant_err=old_pixel-new_pixel
set_pixel(im,x+1,y,im[x+1,y]+quant_err*w1)
set_pixel(im,x-1,y+1, im[x-1,y+1] + quant_err*w2 )
set_pixel(im,x,y+1, im[x,y+1] + quant_err * w3 )
set_pixel(im,x+1,y+1, im[x+1,y+1] + quant_err * w4 )
return im
img=cv2.imread("/home/user/Download