一波骚操作,用 Python 给照片换颜色

最近遇到了一个需求,就是对图片进行色彩风格转换,让一个物体可以以各种不同的色彩来呈现。

比如一个红色的苹果,我想把它转化成绿色,这可怎么办呢?本来想的解决方案是先识别边界,然后对边界内区域进行色彩替换或者填充,这样整个流程就分成了两步,首先需要进行边界判断,有了边界之后才能对某些区域颜色进行替换填充,填充的区域还是不规则的,填充的颜色也需要根据实际的情况来变化,同时还要兼顾阴影、高光等等的处理,想想真是头大。

然后我就突然想到了之前学 PS 的时候,曾经做过对某一张图片进行色调替换,我还记得当时调的内容是「色相」,通过调节这个值可以实现各种色调的转换。这之后我就心想,能不能用程序来做这件事呢?

于是我就开始了对图像色彩的一些研究,研究完了之后就实现了用 Python 来更换图片色调的功能,将这篇文章顺便记录下来。

先给大家看看效果吧,就比如我从百度上随便搜一张图,比如热气球吧,是这样子:

原图

我把它转成红色、黄色、蓝色、紫色,基本就是这个样子:

红色风格

黄色风格

绿色图片

蓝色图片

这里的图片都是经过 Python 自动转换算法实现的,主要调节的就是色相。其实代码实现是比较简单的,但在实现之前需要了解一些图像色彩知识。了解了这些之后我们再实现才会更加游刃有余。

下面我们就首先来了解一下图像色彩的基本知识,然后用 Python 实现色调转换算法吧。

RGB

首先让我们来了解下颜色的三原色,RGB。

RGB,其实就是三种颜色,分别代表红色(Red)、绿色(Green)、蓝色(Blue),用这三种原色颜色混合可以表示任意的颜色。RGB 是根据颜色发光的原理来设计的,比如这里有红绿蓝三道光,当三束光混合在一起的时候,其呈现的最终的光效颜色就取决于这三种原色光的强弱了。

• 比如说红光最强,绿光和蓝光几乎没有,那么最后结果肯定呈现为红光了。 • 如果蓝光很弱,红光和绿光非常强,那么结果就是红光和绿光的混合光,也就黄光。 • 如果红绿蓝三种光都非常强,那么就会呈现三种光的混合光,也就是白光。 • 如果三种光都非常弱,那就几乎没有光,自然就是黑色了。

如果大家了解过 RGB 的

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值