python如何改颜色_如何使用python更改轮廓(从非python获得)中的颜色?

MWE

import matplotlib.pyplot as plt

import numpy as np

import matplotlib.colors as colors

import matplotlib.image as mpimg

from scipy.spatial import cKDTree

import matplotlib

import matplotlib.cm as mplcm

def truncate_colormap(cmap, minval=0.0, maxval=1.0, n=100):

new_cmap = colors.LinearSegmentedColormap.from_list(

'trunc({n},{a:.2f},{b:.2f})'.format(n=cmap.name, a=minval, b=maxval),

cmap(np.linspace(minval, maxval, n)))

return new_cmap

cmap = plt.get_cmap('jet')

cmap = truncate_colormap(cmap, 0.1, 0.9)

img = mpimg.imread('./test.png')[:,:,:3]

#@interact(sub=(0, 500), d=(0,1,0.05))

def convert(sub=256,d=0.1, cin=cmap, cout='viridis'):

viridis = plt.get_cmap(cout)

jet = plt.get_cmap(cin)

jet256 = colors.makeMappingArray(sub, jet)[:, :3]

K = cKDTree(jet256)

oshape = img.shape

img_data = img.reshape((-1,3))

res = K.query(img_data, distance_upper_bound=d)

indices = res[1]

l = len(jet256)

indices = indices.reshape(oshape[:2])

remapped = indices

indices.max()

mask = (indices == l)

remapped = remapped / (l-1)

mask = np.stack( [mask]*3, axis=-1)

blend = np.where(mask, img, viridis(remapped)[:,:,:3])

fig, ax = plt.subplots()

fig.set_figheight(10)

fig.set_figwidth(10)

ax.imshow(blend)

fig.savefig('viridize.pdf')

convert()

输入图像

NyLq2.png

输出图像

BhpGk.png

如何使用python将颜色映射(在本例中是jet)完全转换为viridis?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值