Python 在一定范围内更改像素的颜色

Python 在一定范围内更改像素的颜色,python,Python,我正在尝试将某个图像的颜色更改为新颜色。但是当运行下面的代码时。出现以下错误: 回溯(最近一次呼叫最后一次) 文件“/home/vagner/PycharmProjects/testesdborda/desenharratangulo.py”, 第16行,在 if (image[i, j] > minCorAgua - image[i, j] < maxCorAgua).all(): 跳转到3以获得numpy解决方案 1。使用all if (all(imagem[i,j] >

我正在尝试将某个图像的颜色更改为新颜色。但是当运行下面的代码时。出现以下错误:

回溯(最近一次呼叫最后一次) 文件“/home/vagner/PycharmProjects/testesdborda/desenharratangulo.py”, 第16行,在

if (image[i, j] > minCorAgua - image[i, j] < maxCorAgua).all():

跳转到3以获得numpy解决方案

1。使用
all

if (all(imagem[i,j] > minCorAgua) and all(imagem[i,j] < maxCorAgua)):
当a和b是列表、数组或其他可编辑项时,如果不使用函数
all
,则无法执行
if(a和b)
,以检查
a
b
中的所有元素是否为真。如果数组的每个元素都为True,则此函数将返回True

  • 对范围内的i(imagem.shape[0])使用
    时,不要使用
  • range()
    函数将返回一个列表,而
    for
    语句将遍历该列表

    >>>range(5)
    [0, 1, 2, 3, 4]
    
    现在,您不需要递增和初始化
    i
    j
    ,从而使代码更干净

    for i in range(imagem.shape[1]):
        for j in range(imagem.shape[0]):
            if (all(imagem[i,j] > minCorAgua) and all(imagem[i,j] < maxCorAgua)):
                imagem[i,j] = (255,255,255)
    
    范围内i的
    (imagem.shape[1]):
    对于范围内的j(图像M.形状[0]):
    如果(全部(imagem[i,j]>minCorAgua)和全部(imagem[i,j]
    三,A执行此操作

    import numpy as np
    
    minCorAgua = (108,110,115)
    maxCorAgua = (166,163,162)
    
    bool_pixels = np.all(((imagem>minCorAgua) & (imagem<maxCorAgua)), axis = 2)
    imagem[bool_pixels] = (255, 255, 255)
    
    将numpy导入为np
    minCorAgua=(108110115)
    maxCorAgua=(166163162)
    
    bool_像素=np.all((imagem>minCorAgua)和(IfimeMIT不特定于此错误,但代码上的缩进似乎是关闭的。@ VunnPuxCa乐于助人,欢迎使用堆栈溢出。如果这个答案或另一个解决了您的问题,请通过点击复选标记来考虑。这向更广泛的社区表明,您已经找到了解决方案并给两个ANS带来了一些声誉。沃勒和你自己,没有义务这么做。
    for i in range(imagem.shape[1]):
        for j in range(imagem.shape[0]):
            if (all(imagem[i,j] > minCorAgua) and all(imagem[i,j] < maxCorAgua)):
                imagem[i,j] = (255,255,255)
    
    import numpy as np
    
    minCorAgua = (108,110,115)
    maxCorAgua = (166,163,162)
    
    bool_pixels = np.all(((imagem>minCorAgua) & (imagem<maxCorAgua)), axis = 2)
    imagem[bool_pixels] = (255, 255, 255)