You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中按像素值修改像素?将灰度图值为90的像素涂蓝

用Python修改灰度图像中指定像素为蓝色的具体方法

准备工作:安装图像处理库

首先需要安装Pillow(Python常用的图像处理库,比旧版PIL更易用),打开命令提示符或终端,输入以下命令:

pip install pillow

方法一:适合新手的逐像素遍历法

这种方法逻辑直观,容易理解,适合小尺寸图像:

from PIL import Image

# 1. 打开你的灰度图像,替换成实际图像路径(比如"test.jpg"或绝对路径)
gray_img = Image.open("your_image.png")

# 2. 获取图像的宽度和高度
width, height = gray_img.size

# 3. 创建一个新的RGB格式图像(因为蓝色是三通道颜色,灰度图是单通道,无法直接设置)
result_img = Image.new("RGB", (width, height))

# 4. 遍历每个像素位置
for x in range(width):
    for y in range(height):
        # 获取当前位置的灰度像素值(范围0-255)
        gray_value = gray_img.getpixel((x, y))
        if gray_value == 90:
            # 像素值为90时,设置为蓝色(RGB值为(0, 0, 255))
            result_img.putpixel((x, y), (0, 0, 255))
        else:
            # 其他像素保持原灰度的RGB格式(三个通道值相同)
            result_img.putpixel((x, y), (gray_value, gray_value, gray_value))

# 5. 保存修改后的图像
result_img.save("modified_image.png")

方法二:高效的批量处理法(适合大图像)

如果你的图像尺寸较大,逐像素遍历会很慢,可以用numpy进行批量操作,速度快很多:

from PIL import Image
import numpy as np

# 1. 打开图像并转为灰度格式(如果原图像不是灰度图,必须加.convert("L"))
gray_img = Image.open("your_image.png").convert("L")
# 2. 将图像转为numpy数组,方便批量操作
img_array = np.array(gray_img)
# 3. 创建RGB格式的数组,初始为原灰度的RGB值(三个通道复制原灰度值)
rgb_array = np.stack([img_array, img_array, img_array], axis=2)
# 4. 找到所有像素值等于90的位置
mask = img_array == 90
# 5. 将这些位置的像素设置为蓝色
rgb_array[mask] = [0, 0, 255]
# 6. 将数组转回图像格式
result_img = Image.fromarray(rgb_array)
# 7. 保存结果
result_img.save("modified_image_fast.png")

注意事项

  • 确保图像路径正确:如果图像和代码文件在同一文件夹,直接写文件名即可;否则需要写完整的绝对路径(比如Windows下C:\\Users\\xxx\\Desktop\\test.png,Linux/macOS下/home/xxx/Desktop/test.png)。
  • 如果原图像不是灰度图,需要在打开时加上.convert("L")转为灰度格式,比如gray_img = Image.open("your_image.png").convert("L")。

内容的提问来源于stack exchange,提问作者HermesTrimegisto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:50:26