热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python之HSV颜色识别】

【Python之HSV颜色识别】-Python之HSV颜色识别前言一、HSV颜色模型二、黄色识别三、使用步骤1.引入库2.处理图片3.识别结果总结前言汽车自动

Python 之HSV颜色识别

  • 前言
  • 一、HSV颜色模型
  • 二、黄色识别
  • 三、使用步骤
    • 1.引入库
    • 2.处理图片
    • 3.识别结果
  • 总结


前言
汽车自动驾驶,需要颜色识别,如黄色/红色车道线,蓝色车牌。
本文从HSV颜色模型出发,提供一种识别黄色车道线的方法供参考。

一、HSV颜色模型
HSV颜色模型的参数分别是色调(Hue)、饱和度(Saturation)和明度(Value)。

二、黄色识别
以24色卡为例,识别其中黄色色块。
以下是部分颜色的范围:
H:0-180
S:0-255
V:0-255

三、使用步骤

1.引入库

代码如下 :
import cv2 
import numpy as np
import matplotlib.pyplot as plt

2.处理图片

代码如下 :
# read image
img=cv2.imread('colorchecker.jpg')
# median filter
img=cv2.medianBlur(img,7)

cv2.namedWindow("HSV")
# HSV Color Space
HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.imshow('HSV', HSV)
H, S, V = cv2.split(HSV)
# Color threshold
lower_red = np.array([26, 43, 46])
upper_red = np.array([34, 255, 255])
mask = cv2.inRange(HSV, lower_red, upper_red)
mask=cv2.medianBlur(mask,5)
maskAnd = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow('maskAnd', maskAnd)

# show
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
maskAnd= cv2.cvtColor(maskAnd, cv2.COLOR_BGR2RGB)
plt.subplot(121),plt.imshow(imgRGB)
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(maskAnd)
plt.title('ImageYellow'), plt.xticks([]), plt.yticks([])
plt.show()

cv2.waitKey(0)
cv2.destroyAllWindows()

3.识别结果


总结
本文仅简单介绍了OpenCV中HSV在颜色识别的使用,	实际应用中会有边缘毛刺等,要结合中值滤波预处理;
同时需要大量模型数据统计,进行色彩阈值微调,才能满足色彩识别需求。

推荐阅读
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 图像处理学习笔记:噪声分析与去除策略
    本文详细探讨了不同类型的图像噪声及其对应的降噪技术,旨在帮助读者理解各种噪声的本质,并掌握有效的降噪方法。文章不仅介绍了高斯噪声、瑞利噪声、伽马噪声、指数噪声、均匀噪声和椒盐噪声等常见噪声类型,还特别讨论了周期噪声的特性及处理技巧。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • publicclassBindActionextendsActionSupport{privateStringproString;privateStringcitString; ... [详细]
  • 机器学习实践:逻辑回归与过拟合控制
    本文深入探讨了逻辑回归在机器学习中的应用,并详细解释了如何通过正则化等方法来有效避免模型的过拟合问题。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • Windows Phone 弹出窗口实现方案
    在当前版本的 Silverlight for Windows Phone 中,由于缺乏对 ChildWindow 的支持,开发者需要采用其他方法来实现弹出窗口的功能。本文将探讨几种有效的解决方案。 ... [详细]
  • 根据官方定义,RxJava是一种用于异步编程和可观察数据流的API。其核心特性在于流式处理能力和丰富的操作符支持。 ... [详细]
  • 本文详细介绍了如何在Android应用中实现重复报警功能。示例代码可在以下路径找到:https://developer.android.com/samples/RepeatingAlarm/index.html。首先,我们将从Manifest文件开始分析。 ... [详细]
  • 本文介绍了如何在Android应用中通过Intent调用其他应用的Activity,并提供了详细的代码示例和注意事项。 ... [详细]
  • GreenPlum采纳ShareNothing的架构,良好的施展了便宜PC的作用。自此IO不在是DW(datawarehouse)的瓶颈,相同网络的压力会大很多。然而GreenPlum的查问优化策略可能防止尽量少的网络替换。对于首次接触GreenPlum的人来说,必定耳目一新。 ... [详细]
author-avatar
一支妙笔生花来
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有