Pillow教程06:将图片中出现的黄色和红色,改成绿色

---------------Pillow教程集合---------------

Python项目18:使用Pillow模块,随机生成4位数的图片验证码

Python教程93:初识Pillow模块(创建Image对象+查看属性+图片的保存与缩放)

Pillow教程02:图片的裁剪+复制粘贴+旋转角度+翻转+降噪滤镜(平滑、锐化、边缘检测)

Pillow教程03:图像处理的基本步骤+分离split+合并merge+混合blend+composite遮罩

Pillow教程04:学习Draw绘制+Font字体+alpha composite方法,给图片添加文字水印

Pillow教程05:NumPy数组和PIL图像的相互转化

1.HSV(Hue, Saturation, Value)是一种颜色空间,也被称为HSB(Hue, Saturation, Brightness)。在这种颜色空间中,颜色被表示为色相(Hue)、饱和度(Saturation)和明度(Value或Brightness)三个分量的组合。

色相(Hue):色相表示颜色的基本属性,即我们通常所说的"是什么颜色"。在HSV中,色相通常表示为0到360度的角度,其中0(或360)度代表红色,120度代表绿色,240度代表蓝色。随着角度的变化,颜色在色轮上平滑过渡。

饱和度(Saturation):饱和度表示颜色的纯度或强度。在HSV中,饱和度是一个百分比值,从0%(灰色)到100%(完全饱和)。饱和度越高,颜色越鲜艳;饱和度越低,颜色越接近灰色。

明度(Value/Brightness):明度表示颜色的明暗程度。在HSV中,明度也是一个百分比值,从0%(黑色)到100%(白色)。明度越高,颜色越亮;明度越低,颜色越暗。

HSV色彩空间对照表图

2.把图片中识别的红色和橙黄色像素,更改为(绿色)

代码解析:示例使用了numpy库来更方便地处理图像数据。其中red_lower, red_upper, yellow_lower, 和 yellow_upper 这些变量表示红色和黄色在HSV色相空间中的范围。这些值可能需要根据你的具体图像和颜色定义进行调整。同样,set_color_hue变量表示绿色的色相值,也可以根据你的需要进行调整。

最后,这个代码没有处理饱和度(S)和明度(V)值的变化,这可能会导致修改后的颜色看起来与原始图像中的颜色不同。如果需要更精细的控制,你可能需要同时调整这些值。

原图

修改后的图片

自己可以进一步,在下面的源码基础上,调整红色和黄色的HSV色相值范围,这样就可以去掉一些残留的颜色斑点,使图像更完美。

python 复制代码
# @Author : 小红牛
# 微信公众号:WdPython
from PIL import Image
import numpy as np

# 1.定义红色和黄色的HSV色相范围
red_lower, red_upper = 0, 19
yellow_lower, yellow_upper = 20, 60  # 假设的黄色范围,可能需要调整
# 设置要修改的颜色值
set_color_hue = 70

# 打开图片
image = Image.open('img_1.png')
# 2.转换到HSV色彩空间
hsv_image = image.convert('HSV')
# 获取图像的尺寸
width, height = hsv_image.size

# 3.创建一个空的numpy数组来存储修改后的HSV数据
hsv_datas = np.array(hsv_image)
print('修改前,的HSV数组数据'.center(30, '-'))
print(hsv_datas)
# 4.遍历图像的每个像素
for y in range(height):
    for x in range(width):
        h, s, v = hsv_datas[y, x][:3]
        # 5.检查像素是否在红色或黄色范围内
        if red_lower <= h <= red_upper or yellow_lower <= h <= yellow_upper:
            # 将颜色h值替换
            # print(hsv_datas[y, x], type(hsv_datas[y, x]))
            hsv_datas[y, x][0] = set_color_hue
print('修改后,的数组数据'.center(30, '-'))
print(hsv_datas)
# 6.将修改后的numpy数组转回Pillow图像
hsv_image_modified = Image.fromarray(hsv_datas, 'HSV')
# 转换回RGB色彩空间
rgb_image_modified = hsv_image_modified.convert('RGB')

# 7.保存修改后的图片
rgb_image_modified.save('example_modified.png')

完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具 NumPy Pygame 图像处理

相关推荐
Python×CATIA工业智造11 分钟前
Pycatia二次开发基础代码解析:组件识别、选择反转与链接创建技术解析
python·pycharm
小宁爱Python28 分钟前
从零搭建 RAG 智能问答系统 6:Text2SQL 与工作流实现数据库查询
数据库·人工智能·python·django
binqiang2wang29 分钟前
火山引擎图像超分使用
图像处理·火山引擎
m0_7482412335 分钟前
Java注解与反射实现日志与校验
java·开发语言·python
Wnq100721 小时前
巡检机器人户外视觉识别困境剖析与自动优化模式构建
图像处理·目标检测·低代码·计算机视觉·目标跟踪·机器人·需求分析
可触的未来,发芽的智生1 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
hu_nil1 小时前
LLMOps-第十一周作业
python·vllm
阿Q说代码2 小时前
IPIDEA实现数据采集自动化:高效自动化采集方案
运维·python·自动化·数据采集
大模型真好玩3 小时前
OCR技术简史: 从深度学习到大模型,最强OCR大模型花落谁家
人工智能·python·deepseek
AI量化投资实验室3 小时前
年化591%,回撤仅7%的策略,支持订阅信号|基于AgentScope开发金融多智能体,附python代码
开发语言·python·金融