当前位置: 首页 > 知识库问答 >
问题:

如何给图像中的对象添加不同的颜色

陆飞龙
2023-03-14

我有以下问题:我有黑/白图像,我必须着色:图像中的每个白色“斑点”代表一个对象的实例,我想用新的颜色给每个对象着色,但对于每个图像,我想使用相同的颜色配色方案:

例如:

  • 第一张图片:3个物体-

我已经用手给几张图片上色,以显示结果应该是什么样子:

必须着色的黑白口罩

2个对象,2种颜色:绿色、黄色

4个物体,4种颜色:绿色、黄色、红色、浅灰色

为了自动完成,我尝试了以下方法:

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()

问题是,如果我在我的图像上运行,对象的颜色会根据每个图像中有多少对象而有所不同:

例如:

>

  • 第一张图片:3个物体-

    第二张图片:2个物体-

    第三张图片:5个物体-

    第四张图片:3个物体-

    下面是一些图片,用于显示第三张图片的错误颜色:

    2件物品,橙色和粉色

    另一个图像有两个对象,分别为橙色和粉色

    图像与3个对象,现在颜色变化:橙色,黄色和绿色(我需要:橙色,粉红色和新的颜色

  • 共有1个答案

    宋耀
    2023-03-14

    由于生成的是随机颜色映射,因此颜色不一致也就不足为奇了。

    你想用你选择的颜色创建一个颜色映射,并将该颜色映射传递给每个图像,而不管存在多少斑点。但是,请注意,默认情况下,颜色贴图将标准化为数据范围。由于数据的范围取决于找到的blob的数量,因此需要使用vmin=vmax显式设置规范化。下面是一个使用4种不同图像的演示:

    import imageio
    from scipy import ndimage
    
    colors = ['black','red', 'green', 'yellow', 'pink', 'orange']
    vmin = 0
    vmax = len(colors)
    cmap = matplotlib.colors.ListedColormap(colors)
    
    
    fig, axs = plt.subplots(4,1, figsize=(3,3*4))
    for file,ax in zip(['test1.png','test2.png','test3.png','test4.png'], axs):
        im = imageio.imread(file)
        blobs, number_of_blobs = ndimage.label(im)
        ax.imshow(blobs, cmap=cmap, vmin=vmin, vmax=vmax)
    
     类似资料:
    • 我有一个图标列表。我想把图标的颜色改为白色。默认情况下,我的图标是黑色的。伙计们有什么建议吗?

    • 问题内容: 我想将图像文件添加到json对象中。是否可以将图像文件添加到json对象中? 我尝试了下面的代码,但它不起作用?因为我想将json对象发送到服务器,所以服务器将读取我的图像文件并将其存储到该数据库中。 因此,当我打印此json对象时,它仅显示图像存储的图像路径。我想要文件以将其发送到服务器。 问题答案: 您将需要阅读从入,并把该对象到您。 您还应该看看以下帖子: JSON中的ByteA

    • 我试图使一个程序,将工作和功能像简单的赛马,但我不能设置不同的速度。就我所见,当计时器取不同的值时,例如:我有两张照片,一张有40个计时器,另一张有80个计时器,它们以相同的速度移动,但一张有80个计时器的照片会变短,或者更少的时钟,而这张有40个计时器的照片会变得更平滑。

    • 在其中声明列表后 并在类PlayListStuff中添加字段

    • 我是第一次开发颤振应用程序。。我在添加图像时遇到问题。我有以下问题: 在哪里创建图像文件夹? 在哪里添加资产标签pubspec.ymal? 这需要任何资产文件夹吗? 我所尝试的: 在pubspec内部。ymal: 完整文件: 错误日志: 我的主菜。dart代码: 我指的是这个教程https://flutter.io/tutorials/layout/ 此外,我想问,有没有在颤振清洁重建的工具,因为

    • 问题内容: 我为登录屏幕创建了不同尺寸的背景图像。 我指的是苹果链接https://developer.apple.com/ios/human-interface- guidelines/graphics/launch-screen/ 但我没有启动屏幕,我只是想在登录屏幕中添加背景。 我想知道哪个是1x,2x和3x? 另一个问题是当我创建图像集时,应将哪个尺寸的图像拖到哪个位置。我对此一无所知。还