一種調色方法,基於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
 8- def 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
 5- def 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的logo  
- livetune(kz)的logo,此前已經嵌入了- MNIST的圖像  
- Hachioji-P的logo 