我有一张像这样的带噪声背景的图片(放大后,每个方格都是一个像素)。我想要规范化黑色背景,以便可以完全替换掉颜色。
这是我的想法(伪代码):
for pixel in image:
if is_similar(pixel, (0, 0, 0), threshold):
pixel = (0, 0, 0)
什么样的函数可以让我比较两个颜色值并在一定范围内匹配?
我有一张像这样的带噪声背景的图片(放大后,每个方格都是一个像素)。我想要规范化黑色背景,以便可以完全替换掉颜色。
这是我的想法(伪代码):
for pixel in image:
if is_similar(pixel, (0, 0, 0), threshold):
pixel = (0, 0, 0)
我最终使用了这个答案中的所谓亮度公式。它完美地工作了。
THRESHOLD = 18
def luminance(pixel):
return (0.299 * pixel[0] + 0.587 * pixel[1] + 0.114 * pixel[2])
def is_similar(pixel_a, pixel_b, threshold):
return abs(luminance(pixel_a) - luminance(pixel_b)) < threshold
width, height = img.size
pixels = img.load()
for x in range(width):
for y in range(height):
if is_similar(pixels[x, y], (0, 0, 0), THRESHOLD):
pixels[x, y] = (0, 0, 0)