gpt4 book ai didi

python - 将 (1,1,1) 和 (0,0,0) 以外的 BGR channel 转换为白色 (255,255,255)

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:44 25 4
gpt4 key购买 nike

我有一个输入 image我必须从中将所有不属于 [0,0,0] 和 [1,1,1] 的 BGR channel 转换为白色 [255,255,255]。

我做了一个代码可以转换除 [0,0,0] 以外的所有 channel 变白。

import numpy as np
import cv2

for i in range (1,5):
im = cv2.imread(str(i)+'.png')
im[np.any(im != [0, 0, 0], axis=-1)] = [255,255,255]
cv2.imwrite('a'+str(i)+'.png', im)

我的目标是将除 [0,0,0] 和 [1,1,1] 之外的所有 channel 都转换为白色。为此,我对代码进行了以下更改。

import numpy as np
import cv2

for i in range (1,5):
im = cv2.imread(str(i)+'.png')
im[np.any(im != [0, 0, 0] & im != [1,1,1], axis=-1)] = [255,255,255]
cv2.imwrite('a'+str(i)+'.png', im)

我收到这个错误:

Traceback (most recent call last):
File "convert.py", line 6, in <module>
im[np.any(im != [0, 0, 0] & im != [1,1,1], axis=-1)] = [255,255,255]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

如何通过更改上述代码将除 [0,0,0] 和 [1,1,1] 像素以外的所有图像转换为白色 [255,255,255]?

最佳答案

Operator precedence .

&==!= 有更高的优先级,所以你需要括号来让它工作:

 im[np.any((im != [0, 0, 0]) & (im != [1, 1, 1]), axis=-1)] = [255, 255, 255]

关于python - 将 (1,1,1) 和 (0,0,0) 以外的 BGR channel 转换为白色 (255,255,255),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com