python-3.x - 将特定范围内的所有BGR值转换为白色(255,255,255)

标签 python-3.x opencv

我输入了 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/

相关文章:

python - 如何调用 pypdfocr 函数以在 python 脚本中使用它们?

python - 回到 python 中的一个中断循环

python - 删除两个等长数组中nan AND对应的元素

opencv - 如何从 ML Kit 人脸标志点估计人脸姿势

opencv - cv::RotatedRect 中的非零像素数

c++ - ios opencv 的回调 "processImage"分辨率与 ImageView 不匹配

opencv - vcap 无法打开 [udp @ 0x56378e8a76a0] 绑定(bind)失败 : Permission denied

python - Docker 配置在一台机器(Ubuntu)上工作,但在其他机器(Mac M1)上不起作用

python - Pandas 相关矩阵与 value_counts 列字符串

python - 为什么opencv视频读取fps与视频加密fps不同?