Python PIL比较颜色

2024-04-24 07:35:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样背景嘈杂的图像(放大,每个方块是一个像素)。我正在尝试使黑色背景正常化,以便可以完全替换颜色。在

这就是我的想法(psuedo代码):

for pixel in image:
    if is_similar(pixel, (0, 0, 0), threshold):
        pixel = (0, 0, 0)

什么样的函数可以让我比较两个颜色值在某个阈值内匹配?在


Tags: 代码in图像imageforifis颜色
1条回答
网友
1楼 · 发布于 2024-04-24 07:35:20

最后我使用了this answer中的感知亮度公式。它工作得很好。在

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)

相关问题 更多 >