我输入了 png 图像,我想将属于特定范围的所有像素从 (2,2,2) 开始 (255,255,255) 转换为白色 (255,255,255)
im = cv2.imread('3.png') # I am reading the image
lower_range = np.array([2,2,2]). # I specific the lower range
upper_range = np.array([255,255,255]) # I specify the upper range
im[np.where((im == [0,0,255]).all(axis = 2))] = [255,255,255] # converts all red pixels to white
cv2.imwrite('out.png', im)
我的问题是如何修改
im[np.where((im == [0,0,255]).all(axis = 2))] = [255,255,255]
.这样它就覆盖了第 2 行和第 3 行中提到的颜色范围,并将它们全部转换为白色。
最佳答案
有cv2.inRange这会产生一个蒙版,可用于根据需要更改颜色。
mask1 = cv2.inRange(im, lower_range, upper_range)
im[np.where(mask)] = [255,255,255]
附带说明一下,您的颜色范围非常大(几乎涵盖了所有内容)。
关于python-3.x - 将特定范围内的所有BGR值转换为白色(255,255,255),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55661998/