广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何在python中使用opencv实现一个颜色检测功能
  • 899
分享到

如何在python中使用opencv实现一个颜色检测功能

2023-06-06 12:06:32 899人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文章向大家介绍如何在python中使用OpenCV实现一个颜色检测功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Python主要用来做什么Python主要应用于:1、web开发;2、数据科学研究;3、网络

本文章向大家介绍如何在python中使用OpenCV实现一个颜色检测功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Python主要用来做什么

Python主要应用于:1、web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、游戏开发;6、桌面应用开发。

1.首先需要确定待检测目标的HSV值

import cv2img = cv2.imread('l3.png')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)def mouse_click(event, x, y, flags, para): if event == cv2.EVENT_LBUTTONDOWN: # 左边鼠标点击  print('PIX:', x, y)  print("BGR:", img[y, x])  print("GRAY:", gray[y, x])  print("HSV:", hsv[y, x])if __name__ == '__main__': cv2.namedWindow("img") cv2.setMouseCallback("img", mouse_click) while True:  cv2.imshow('img', img)  if cv2.waiTKEy() == ord('q'):   break cv2.destroyAllwindows()

2.然后利用颜色检测,检测出指定目标

import numpy as npimport cv2font = cv2.FONT_HERSHEY_SIMPLEXlower_red = np.array([0, 127, 128]) # 红色阈值下界higher_red = np.array([10, 255, 255]) # 红色阈值上界lower_yellow = np.array([15, 230, 230]) # 黄色阈值下界higher_yellow = np.array([35, 255, 255]) # 黄色阈值上界lower_blue = np.array([85,240,140])higher_blue = np.array([100,255,165])frame=cv2.imread("l3.png")img_hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)mask_red = cv2.inRange(img_hsv, lower_red, higher_red) # 可以认为是过滤出红色部分,获得红色的掩膜mask_yellow = cv2.inRange(img_hsv, lower_yellow, higher_yellow) # 获得绿色部分掩膜mask_yellow = cv2.medianBlur(mask_yellow, 7) # 中值滤波mask_red = cv2.medianBlur(mask_red, 7) # 中值滤波mask_blue = cv2.inRange(img_hsv, lower_blue, higher_blue) # 获得绿色部分掩膜mask_blue = cv2.medianBlur(mask_blue, 7) # 中值滤波#mask = cv2.bitwise_or(mask_green, mask_red) # 三部分掩膜进行按位或运算print(mask_red)cnts1, hierarchy1 = cv2.findContours(mask_red, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # 轮廓检测 #红色cnts2, hierarchy2 = cv2.findContours(mask_blue, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # 轮廓检测 #红色cnts3, hierarchy3 = cv2.findContours(mask_yellow, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)for cnt in cnts1: (x, y, w, h) = cv2.boundingRect(cnt) # 该函数返回矩阵四个点 cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2) # 将检测到的颜色框起来 cv2.putText(frame, 'red', (x, y - 5), font, 0.7, (0, 0, 255), 2)for cnt in cnts2: (x, y, w, h) = cv2.boundingRect(cnt) # 该函数返回矩阵四个点 cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2) # 将检测到的颜色框起来 cv2.putText(frame, 'blue', (x, y - 5), font, 0.7, (0, 0, 255), 2)for cnt in cnts3: (x, y, w, h) = cv2.boundingRect(cnt) # 该函数返回矩阵四个点 cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) # 将检测到的颜色框起来 cv2.putText(frame, 'yellow', (x, y - 5), font, 0.7, (0, 255, 0), 2)cv2.imshow('frame', frame)cv2.waitKey(0)cv2.destroyAllWindows()

以上就是小编为大家带来的如何在python中使用opencv实现一个颜色检测功能的全部内容了,希望大家多多支持编程网!

--结束END--

本文标题: 如何在python中使用opencv实现一个颜色检测功能

本文链接: https://www.lsjlt.com/news/246895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在python中使用opencv实现一个颜色检测功能
    本文章向大家介绍如何在python中使用opencv实现一个颜色检测功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络...
    99+
    2023-06-06
  • 怎么在python中利用opencv实现一个车道线检测功能
    这篇文章将为大家详细讲解有关怎么在python中利用opencv实现一个车道线检测功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现思路:canny边缘检测获取图中的边缘信息;2、霍夫变...
    99+
    2023-06-06
  • 使用python与opencv怎么实现一个运动检测器功能
    使用python与opencv怎么实现一个运动检测器功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python主要用来做什么Python主要应用于:1、We...
    99+
    2023-06-06
  • 使用opencv怎么实现一个车道线检测功能
    这篇文章给大家介绍使用opencv怎么实现一个车道线检测功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。原理:算法基本思想说明:传统的车道线检测,多数是基于霍夫直线检测,其实这个里面有个很大的误区,霍夫直线拟合容易受...
    99+
    2023-06-06
  • python+mediapipe+opencv如何实现手部关键点检测功能
    今天给大家介绍一下python+mediapipe+opencv如何实现手部关键点检测功能。,文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。一、mediapip...
    99+
    2023-06-26
  • 如何在python中使用OpenCV检测人脸
    这期内容当中小编将会给大家带来有关如何在python中使用OpenCV检测人脸,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相...
    99+
    2023-06-14
  • 在Python中如何使用OpenCV进行直线检测
    这篇文章主要介绍了在Python中如何使用OpenCV进行直线检测的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇在Python中如何使用OpenCV进行直线检测文章都会有所收获,下面我们一起来看看吧。1. 引言...
    99+
    2023-06-29
  • 怎么在c#中利用socket实现一个心跳超时检测的功能
    怎么在c#中利用socket实现一个心跳超时检测的功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 内存布局图假设socket3有新的数据到达,需要更新socket3所在的...
    99+
    2023-06-07
  • 怎么在C++中使用opencv实现一个车道线识别功能
    本篇文章为大家展示了怎么在C++中使用opencv实现一个车道线识别功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)目前国内外广泛使用的车道线检测方法主要分为两大类:(1) 基于道路特征的车...
    99+
    2023-06-06
  • 如何在Python中使用Tqdm模块实现一个进度条功能
    本文章向大家介绍如何在Python中使用Tqdm模块实现一个进度条功能,主要包括如何在Python中使用Tqdm模块实现一个进度条功能的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Pytho...
    99+
    2023-06-06
  • 怎么在python中使用PyQt5实现一个窗口功能
    怎么在python中使用PyQt5实现一个窗口功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python主要应用领域有哪些1、云计算,典型应用OpenSta...
    99+
    2023-06-14
  • 如何在Golang中使用WebSocket实现一个通信功能
    本篇文章给大家分享的是有关如何在Golang中使用WebSocket实现一个通信功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是golanggolang 是Google...
    99+
    2023-06-06
  • 如何在MongoDB中实现数据的实时异常检测功能
    如何在MongoDB中实现数据的实时异常检测功能近年来,大数据的快速发展带来了数据规模的猛增。在这个海量的数据中,异常数据的检测变得越来越重要。MongoDB是目前流行的非关系型数据库之一,具有高可扩展性和灵活性的特点。本文将介绍如何在Mo...
    99+
    2023-10-22
    聚合管道(Aggregation Pipeline) 数据流(Change Streams) 监控器(Monitor)
  • 怎么在Html5中使用Canvas实现动画碰撞检测功能
    本篇文章为大家展示了怎么在Html5中使用Canvas实现动画碰撞检测功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵...
    99+
    2023-06-09
  • 怎么在Java中利用JUnit实现一个单元测试功能
    怎么在Java中利用JUnit实现一个单元测试功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。单元测试是编写测试代码,应该准确、快速地保证程序基本模块的正确性...
    99+
    2023-05-31
    java junit ava
  • 如何在vue中使用video实现一个播放器功能
    这期内容当中小编将会给大家带来有关如何在vue中使用video实现一个播放器功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当现有video播放器不能满足需求时,需要自己对video进行封装。video...
    99+
    2023-06-06
  • 在Java中使用swing实现一个录音功能
    在Java中使用swing实现一个录音功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。添加监听事件:import java.awt.*;import java.awt.eve...
    99+
    2023-05-31
    java swing ava
  • 在Java中使用Jsoup实现一个爬虫功能
    在Java中使用Jsoup实现一个爬虫功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Java 爬虫工具Jsoup详解Jsoup是一款 Java 的 HTML 解...
    99+
    2023-05-31
    java 爬虫 jsoup
  • 在SpringBoot中使用MyBatis如何实现一个应用访问功能
    今天就跟大家聊聊有关在SpringBoot中使用MyBatis如何实现一个应用访问功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一,Pom文件<&#63;xml v...
    99+
    2023-05-31
    springboot 应用访问 mybatis
  • AJAX应用实例之如何实现检测用户名是否唯一功能
    小编给大家分享一下AJAX应用实例之如何实现检测用户名是否唯一功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!效果图如下所示:下面写一个简单的例子,检测用户名是否唯一(直接撸代码):前端...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作