Python 在一定范围内更改像素的颜色
我正在尝试将某个图像的颜色更改为新颜色。但是当运行下面的代码时。出现以下错误: 回溯(最近一次呼叫最后一次) 文件“/home/vagner/PycharmProjects/testesdborda/desenharratangulo.py”, 第16行,在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] >
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
时,不要使用:
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)