Python 如果满足条件,如何将像素值设置为特定值?

Python 如果满足条件,如何将像素值设置为特定值?,python,image,numpy,opencv,Python,Image,Numpy,Opencv,我有一个基于RGBA模式的图像,它有一个透明的背景,如下所示 我注意到的红点的像素值为(2,2,3,45),表示R、G、B和alpha值 我想让所有alpha值低于45的像素变成(0,0,0,0)。我搜索了一会儿,但是我只发现numpy.where有类似的功能,但它只适合于单个数据,如R值或B值,而不是整个像素元组: 下面是我想要实现的一些伪代码: 如果像素的alpha值可以使用NumPy: 导入cv2 将numpy作为np导入 image=np.uint8(np.one((256,256,4)

我有一个基于RGBA模式的图像,它有一个透明的背景,如下所示

我注意到的红点的像素值为
(2,2,3,45)
,表示R、G、B和alpha值

我想让所有alpha值低于
45
的像素变成
(0,0,0,0)
。我搜索了一会儿,但是我只发现
numpy.where
有类似的功能,但它只适合于单个数据,如R值或B值,而不是整个像素元组:

下面是我想要实现的一些伪代码:

如果像素的alpha值可以使用NumPy:

导入cv2
将numpy作为np导入
image=np.uint8(np.one((256,256,4))*(255,0,0,0))
alpha=np.uint8(np.expand_-dims(np.arange(256),轴=1)*np.one(256))
图像[:,:,3]=α
image\u alpha\u cut=image.copy()
image_alpha_cut[image_alpha_cut[:,:,3]您可以使用NumPy来实现:

导入cv2
将numpy作为np导入
image=np.uint8(np.one((256,256,4))*(255,0,0,0))
alpha=np.uint8(np.expand_-dims(np.arange(256),轴=1)*np.one(256))
图像[:,:,3]=α
image\u alpha\u cut=image.copy()

图像阿尔法切[图像阿尔法切[:,:,3]如何加载图像?它是一个numpy数组吗?是的,它是numpy数组如何加载图像?它是一个numpy数组吗?是的,它是numpy数组我不知道它对这样的值赋值执行广播,认为右侧需要是[0,0,0,0]或np.0(这里的适当形状)@HansHirsse,嗨,还有一件事,如果我想要
alpha value*=0.3
而不是等于0呢?我想要所有alpha
value<40
都变成
alpha value*=0.3
@Super-ilad,请看我的编辑。我不知道它会为这样的值赋值执行广播,但右侧需要是[0,0,0,0]或np.0(这里的形状合适)。@HansHirsse,你好,还有一件事,如果我想要
alpha值*=0.3
而不是等于0呢?我想要所有alpha
value<40
都变成
alpha值*=0.3
@Super-ilad请查看我的编辑。