Python中白色的颜色阈值是多少?用于图片白色追踪与分离
在Python中设置白色颜色阈值以实现颜色追踪
嘿,要在Python里追踪白色,最靠谱的方式是用HSV颜色空间,而不是直接用RGB——因为RGB太容易受光照变化影响了,HSV的色调(H)、饱和度(S)、明度(V)三个通道能更稳定地分离出白色这类低饱和度的颜色。
白色的HSV阈值(以OpenCV为例)
OpenCV里的HSV范围是:H(0-179)、S(0-255)、V(0-255)。白色的核心特征是低饱和度(几乎没有色彩倾向)和高明度(亮度高),所以常用的阈值范围是:
- 下限阈值:
(0, 0, 200) - 上限阈值:
(179, 25, 255)
不过这个范围不是绝对的,你可以根据自己图片的实际光照情况微调:
- 如果图片里的白色偏暗(比如阴天拍摄的),可以把V的下限降到180甚至150
- 如果有些淡灰色也想被识别成白色(比如略带污渍的白色物体),可以把S的上限提高到50左右
示例代码(用OpenCV实现白色追踪)
下面是一段可以直接运行的代码,帮你从图片中提取白色区域:
import cv2 import numpy as np # 读取图片 img = cv2.imread('your_image.jpg') # 转换为HSV颜色空间 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 定义白色的HSV阈值 lower_white = np.array([0, 0, 200]) upper_white = np.array([179, 25, 255]) # 创建掩码:只保留在阈值范围内的像素 mask = cv2.inRange(hsv, lower_white, upper_white) # 将掩码应用到原图,提取白色区域 white_only = cv2.bitwise_and(img, img, mask=mask) # 显示结果(可选) cv2.imshow('Original Image', img) cv2.imshow('White Only', white_only) cv2.waitKey(0) cv2.destroyAllWindows()
关于RGB阈值的补充(不推荐)
如果一定要用RGB的话,白色的范围大概是(200, 200, 200)到(255, 255, 255),但这种方式对光照变化非常敏感——比如阴影下的白色可能会掉到(150,150,150),导致追踪失效,所以还是优先用HSV方案。
内容的提问来源于stack exchange,提问作者Saravana Bhavan
相关产品推荐
相关产品推荐

