东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1456|回复: 1
打印 上一主题 下一主题

[课堂笔记] 如何找到hsv空间中某颜色的范围以便分割

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
跳转到指定楼层
楼主
发表于 2021-3-8 15:45:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



  1. import cv2
  2. import numpy as np
  3. # 如何找到hsv空间中某颜色的范围以便分割

  4. # BGR
  5. # green = np.uint8([0, 255, 0])
  6. green = np.uint8([[[255, 0, 0]]])
  7. # HWC
  8. print(green.shape)
  9. hsv_green = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

  10. print(hsv_green)

  11. # 结果是[[[ 60 255 255]]]
  12. # 现在以 [H-10, 100,100] 到 [H+10, 255, 255] 作为范围 颜色过滤
  13. # 注意不要忘记hsv本来的取值范围
  14. # 根据HSV模型,
  15. # 彩色图像的色调(H)在8bit下是(0-180)三基色的值大概是红(0),黄(30),绿(60),青(90),蓝(120)
  16. # 饱和度(S)的范围是(0-255),明度(V)的范围是(0-255)
复制代码



  1. # 设定蓝色的阈值

  2.     lower_blue = np.array([110, 100, 100])
  3.     upper_blue = np.array([130, 255, 255])
  4.     # 丢弃蓝色的背景 干扰
  5.     hsv = cv2.cvtColor(crop_img, cv2.COLOR_BGR2HSV)
  6.     mask = cv2.inRange(hsv, lower_blue, upper_blue)
  7.     # 二值化mask
  8.     _, mask = cv2.threshold(mask, 127, 255, cv2.THRESH_BINARY_INV)
  9.     # mask = 255 - mask
  10.     res = cv2.bitwise_and(crop_img, crop_img, mask=mask)
复制代码






让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14437
QQ
沙发
 楼主| 发表于 2021-3-8 15:45:59 | 只看该作者
Now you take [H-10, 100,100] and [H+10, 255, 255] as lower bound and upper bound respectively.
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-6 07:36 , Processed in 0.172509 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表