如何在matplotlib python中在白色背景上显示不同随机颜色的对象?

Sha*_*han 4 python matplotlib

我有一个图像,其中有标有数字的对象,例如属于对象 1 的所有像素的值为 1 等等。图像的其余部分为零。

我想看到每个对象都具有不同的随机颜色和白色背景。

我尝试过几种颜色贴图,如灰色、黑色等,但没有一个满足要求,因为它们按顺序将对象从暗到亮着色。

多谢。

fra*_*xel 7

使用随机颜色制作自己的颜色图是解决此问题的快速方法:

colors = [(1,1,1)] + [(random(),random(),random()) for i in xrange(255)]
new_map = matplotlib.colors.LinearSegmentedColormap.from_list('new_map', colors, N=256)
Run Code Online (Sandbox Code Playgroud)

第一种颜色是白色,为您提供白色背景。

完整的运行代码:

import scipy
from scipy import ndimage
import matplotlib.pyplot as plt
import matplotlib
from random import random

colors = [(1,1,1)] + [(random(),random(),random()) for i in xrange(255)]
new_map = matplotlib.colors.LinearSegmentedColormap.from_list('new_map', colors, N=256)

im = scipy.misc.imread('blobs.jpg',flatten=1)
blobs, number_of_blobs = ndimage.label(im)

plt.imshow(blobs, cmap=new_map)
plt.imsave('jj2.png',blobs, cmap=new_map)
plt.show()
Run Code Online (Sandbox Code Playgroud)

带标签、随机着色的输出示例:

在此输入图像描述

希望这对你来说是随机的!