如何使用OpenCV进行颜色与阈值处理?

一、环境安装

bash

运行

复制代码
pip install opencv-python numpy

二、核心原理

  1. 颜色空间转换 :常用 BGR→HSV,HSV 更适合按颜色筛选
  2. 阈值处理:设定像素明暗区间,实现图像二值化、分割区域

三、1. 颜色筛选(HSV 颜色提取)

常用颜色 HSV 范围

  • 蓝色:(90,43,46) ~ (124,255,255)
  • 绿色:(35,43,46) ~ (77,255,255)
  • 红色:(0,43,46) ~ (10,255,255)
  • 黄色:(26,43,46) ~ (34,255,255)

完整代码

python

运行

复制代码
import cv2
import numpy as np

img = cv2.imread("test.jpg")
# 转HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 设定蓝色阈值
lower_blue = np.array([90,43,46])
upper_blue = np.array([124,255,255])

# 颜色掩码
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# 提取目标颜色
res = cv2.bitwise_and(img, img, mask=mask)

cv2.imshow("原图",img)
cv2.imshow("掩码",mask)
cv2.imshow("颜色提取",res)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、2. 图像阈值处理(二值化)

四种常用阈值模式

  1. 二进制阈值:大于阈值变白,小于变黑
  2. 反二进制阈值:相反效果
  3. 截断阈值:超出阈值统一设为阈值
  4. 自适应阈值:局部明暗自动适配,暗光图片首选

基础全局阈值代码

python

运行

复制代码
import cv2

img = cv2.imread("test.jpg",0) # 直接读灰度图

# ret:阈值 , binary:处理后图像
ret, binary = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)

cv2.imshow("灰度图",img)
cv2.imshow("二值化",binary)
cv2.waitKey(0)

参数说明:

  • 127:分界阈值
  • 255:最大值
  • THRESH_BINARY:二值化模式

自适应阈值(实用最强)

python

运行

复制代码
adap = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
cv2.imshow("自适应阈值",adap)

五、常用实操用途

  1. 提取画面指定颜色物体
  2. 证件文字黑白二值化
  3. 去除图像杂色、背景分离
  4. 摄像头实时颜色追踪
  5. 工业视觉物料颜色分拣

六、精简要点

  1. 选颜色优先转HSV,比 RGB 精准
  2. 纯色分离用inRange做掩码
  3. 文字、轮廓提取用二值化阈值
  4. 光线不均一律用自适应阈值
相关推荐
正经教主17 小时前
【FDE系列】阶段2:Day 42(UP详细版):Dockerfile 实战 — 把你的应用打包成镜像
人工智能·docker·fde
MarkHD17 小时前
超分辨率与图像放大:从ESRGAN的纹理重建到UltimateSDUpscale的4K分块实战
人工智能·深度学习·计算机视觉
武子康18 小时前
H3-World 的动作没按时发生,先检查时间线变成了什么
人工智能·后端·agent
jimmyleeee18 小时前
Agent安全之五:当语言变成执行------深入理解Unexpected Code Execution (ASI05)
人工智能·安全
谁在黄金彼岸18 小时前
Ollama 还是 LM Studio:在 24GB 的 M6 Mac 上,我把 Ollama 卸载了
人工智能
方方洛18 小时前
ray教程-18-性能调优与反模式
人工智能·分布式·机器学习
人工智能培训18 小时前
知识图谱:结构化表达实体与关系的知识组织技术
大数据·人工智能·算法·重构·生活·知识图谱
GIS数据转换器18 小时前
基于CIM的城市智慧供热监管服务平台
java·大数据·开发语言·人工智能·后端·物联网·struts
专注仿真18 小时前
动态规划算法详解
人工智能·python·大模型训练·控制算法
xingyuzhisuan18 小时前
不止文生图:StarverseAI 商业视觉解锁视频、展台全场景创作
人工智能