当前位置: 首页 > 面试题库 >

在图像文件中将特定的RGB颜色像素更改为另一种颜色

荣晨朗
2023-03-14
问题内容

我想用Python更改单一颜色。

如果存在使用PIL的快速解决方案,我会更喜欢此解决方案。

此刻,我用

convert -background black -opaque '#939393' MyImage.png MyImage.png

问题答案:

如果计算机numpy上可用,请尝试执行以下操作:

import numpy as np
from PIL import Image

im = Image.open('fig1.png')
data = np.array(im)

r1, g1, b1 = 0, 0, 0 # Original value
r2, g2, b2 = 255, 255, 255 # Value that we want to replace it with

red, green, blue = data[:,:,0], data[:,:,1], data[:,:,2]
mask = (red == r1) & (green == g1) & (blue == b1)
data[:,:,:3][mask] = [r2, g2, b2]

im = Image.fromarray(data)
im.save('fig1_modified.png')

它将使用多一点(3倍)的内存,但它应该快得多(〜5倍,但对于更大的图像,更多)。

另请注意,如果您只有RGB(而不是RGBA)图像,则上面的代码比需要的代码稍微复杂一些。但是,此示例将单独保留Alpha波段,而没有一个更简单的版本。



 类似资料:
  • 我对Android很陌生,正在做我自己的迷你项目,我想改变一个特定像素的颜色。在寻找如何做到这一点时,我在几年前遇到了这个问题。我尝试了myBitmap。setPixel(10,10,Color.rgb(45,127,0)) ,但当我在手机上激活它时,我激活这行代码的那一刻它就崩溃了。每当我与位图交互时,它似乎就会崩溃<代码>int x=myBitmap。getHeight() 这一行也会使应用程

  • 对于给定的多色PNG(带透明度),最好的/快速的惯用方式是什么: 创建一个重复的 关于SO有几个相关的问题,但是我还没有找到有效的方法。

  • 问题内容: 我想从我的Fluke机器人那里得到一张图像,并确定图像中每个像素的颜色。然后,如果像素大部分为红色,请将其更改为完全绿色。如果像素大部分是绿色,请将其更改为完全蓝色。如果像素大部分是蓝色,请将其更改为完全红色。这是我能够做的,但是我无法使它工作以获取必须更改的图像。没有语法错误,这只是语义上的麻烦。我正在使用python。 我尝试的代码: 我也保存了如下图片: 问题答案: 我假设您正在

  • 图像中的每个像素都有一个rgb值,看起来像[r g b],其中r、g、b是从0到255的整数值。 现在,让我们定义8个rgb颜色极端: [0]黑色 [0 255]蓝色 [0 255 0]绿色 [0 255]青色 [255 0 0]红色 [255 0 255]洋红色 [255 0]黄色 [255]白色。 Matlab中有没有一种有效的方法,或者Matlab中的一个函数,可以将一幅图像转换成另一幅具有

  • 本文向大家介绍iOS 更改图像的颜色,包括了iOS 更改图像的颜色的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我需要在python中更改图像的像素颜色。除了像素值(255,0,0)红色外,我需要将每个像素颜色值更改为黑色(0,0,0)。我尝试了以下代码,但没有帮助。 问题答案: 参见此Wikibook:https : //zh.wikibooks.org/wiki/Python_Imaging_Library/Editing_Pixels 修改该代码以适合您的问题: