一種調色方法,基於RGB
理論。
我嬾得說太多了抱歉。
Goal
例如把圖片變換爲亦即染色為葱色#39c5bb
。
Program
聲明模塊:
1 | import numpy as np |
其中:
模塊 | 版本 |
---|---|
Anaconda |
5.2.0 |
Python |
3.6.5 |
NumPy |
1.14.3 |
TensorFlow |
1.11.0 |
Keras |
2.1.6 |
先計算色相的偏差值:
1 | class Constants(object): |
導入需要的圖片並轉化爲張量:
1 | rawimg = img.load_img("./Windows.jpeg") |
此處需要審察待變換圖像的主體是否大部分為黑白,分爲兩種情況:
如若主體大部分為黑白色,則需要在保持亮度不變的前提下,先把最大值(偏白色)拉到最亮或者把最小值(偏黑色)拉到最暗,然後中間量由最大與最小值的綫性組合得到,類似定比分點:
Python 1
2
3
4
5
6
7
8def transcolor(rawcolor):
elesum = rawcolor.max() + rawcolor.min()
if elesum <= 255:
elemin, elemax = 0, elesum
else:
elemin, elemax = elesum - 255, 255
elemid = (1 - DEV) * elemin + DEV * elemax
return np.array([ elemin, elemax, elemid ])否則可以直接計算中間量:
Python 1
2
3
4
5def transcolor(rawcolor):
elemax = rawcolor.max()
elemin = rawcolor.min()
elemid = (1 - DEV) * elemin + DEV * elemax
return np.array([ elemin, elemax, elemid ])
新建一個零張量,並用剛才定義的函數對每個像素點進行顔色變換,然後保存爲新的圖片:
1 | newarr = np.zeros(rawarr.shape) |
Samples
更多的例子:
Leo/need
的logolivetune(kz)
的logo,此前已經嵌入了MNIST
的圖像Hachioji-P
的logo