利用 Python 给照片换色

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

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

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

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

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

利用 Python 给照片换色_第1张图片

原图

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

利用 Python 给照片换色_第2张图片

红色风格

利用 Python 给照片换色_第3张图片

黄色风格

利用 Python 给照片换色_第4张图片

绿色图片

利用 Python 给照片换色_第5张图片

蓝色图片

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

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

你可能感兴趣的:(python,编程语言,开发,Python学习)