opencv颜色识别,hsv采用滑块调节

识别效果
识别效果如图所示,尽量排除了蓝色背景的干扰,hsv可用滑块进行调节,更加方便
在这里插入图片描述

import cv2
import numpy as np# 创建一个命名窗口,用于显示滑块
cv2.namedWindow("TrackBar")def nothing(x):pass# 创建滑块控件
cv2.createTrackbar("Hue Min", "TrackBar", 0, 179, nothing)
cv2.createTrackbar("Hue Max", "TrackBar", 179, 179, nothing)
cv2.createTrackbar("Sat Min", "TrackBar", 99, 255, nothing)
cv2.createTrackbar("Sat Max", "TrackBar", 255, 255, nothing)
cv2.createTrackbar("Val Min", "TrackBar", 114, 255, nothing)
cv2.createTrackbar("Val Max", "TrackBar", 255, 255, nothing)# 初始化滑块值
cv2.setTrackbarPos("Hue Min", "TrackBar", 0)
cv2.setTrackbarPos("Hue Max", "TrackBar", 88)
cv2.setTrackbarPos("Sat Min", "TrackBar", 147)
cv2.setTrackbarPos("Sat Max", "TrackBar", 255)
cv2.setTrackbarPos("Val Min", "TrackBar", 114)
cv2.setTrackbarPos("Val Max", "TrackBar", 255)# 打开摄像头
cap = cv2.VideoCapture(0)if not cap.isOpened():print("Error: Could not open camera.")exit()while True:# 读取一帧视频ret, frame = cap.read()if not ret:print("Error: Could not read frame.")break# 转换图像颜色空间为HSVimgHSV = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# 获取滑块的当前值hueLow = cv2.getTrackbarPos("Hue Min", "TrackBar")hueHigh = cv2.getTrackbarPos("Hue Max", "TrackBar")satLow = cv2.getTrackbarPos("Sat Min", "TrackBar")satHigh = cv2.getTrackbarPos("Sat Max", "TrackBar")valLow = cv2.getTrackbarPos("Val Min", "TrackBar")valHigh = cv2.getTrackbarPos("Val Max", "TrackBar")# 创建掩膜lower_red = np.array([hueLow, satLow, valLow])upper_red = np.array([hueHigh, satHigh, valHigh])mask = cv2.inRange(imgHSV, lower_red, upper_red)# 应用中值模糊来减少噪声mask = cv2.medianBlur(mask, 7)# 使用掩膜提取图像的特定部分imageResult = cv2.bitwise_and(frame, frame, mask=mask)# 查找轮廓contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 查找最大轮廓max_contour = Nonemax_area = 0for contour in contours:area = cv2.contourArea(contour)if area > max_area:max_area = areamax_contour = contour# 在原始图像上绘制矩形框if max_contour is not None and max_area > 500:  # 忽略小区域x, y, w, h = cv2.boundingRect(max_contour)cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)# 显示原始图像和掩膜效果cv2.imshow('Original', frame)cv2.imshow('HSV', imgHSV)cv2.imshow('Mask Result', imageResult)# 按'q'键退出if cv2.waitKey(1) == ord('q'):break# 释放摄像头并销毁所有窗口
cap.release()
cv2.destroyAllWindows()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python深度学习

原文链接:Python深度学习https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608512&idx1&sn16e2a0bb6b0a1f6b513be173730090c0&chksmfa826927cdf5e031b702deb04eef5cb0055f65b0d6e4c33588949ee81c7380ee044caeafd8c7&token2068755524&am…

Python中的格式化输出

在Python编程中,格式化输出是一个常见的需求,通过不同的方法,我们可以将变量值以特定的格式显示出来。本文将介绍Python中四种常用的格式化输出方法,包括百分号(%)格式化、str.format()方法、f字符串&#…

arp缓存中毒实验

文章目录 一、相关知识1.什么是arp(地址解析协议)2.什么是免费arp(1)简介(2)主要应用(3)代码 3.什么是arp缓存中毒(1)简介(2)过程&…

整车行业APS项目难点(我的APS项目九)

一、成功案例少,从业人员少,顾问经验少。 二、服务器架构基本全自研,试错过程长,但生产环境对架构要求高。 三、数据体量大(包含产品BOM),对数据质量要求极高、配置BOM技术壁垒高。 四、AI算…

【单链表】06 给定两个单链表,编写算法找出两个链表的公共结点。

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言 题目 给定两个单链表,编写算法找出两个链表的公共结点。 算法思路 先将链表对齐…

24吉林事业单位报名照上传通过别忘了这一步

24吉林事业单位报名照上传通过别忘了这一步 #吉林事业单位 #吉林三支一扶 #吉林事业编 #事业单位报名照片 #吉林事业单位考试 #吉林市事业单位

泛微E9开发 控制Radio框字段打印是否仅显示选中项文字

控制Radio框字段打印是否仅显示选中项文字 1、需求说明2、实现方法3、扩展知识点控制Radio框字段打印是否仅显示选中项文字格式参数说明样例 1、需求说明 当我们对单选框进行打印时,往往会把所有的选项一起打印出来(如下图所示),现…

【AIGC】一、本地docker启动私有大模型

本地docker启动私有大模型 一、最终效果中英文对话生成代码 二、资源配置三、搭建步骤启动docker容器登录页面首次登录请注册登录后的效果 配置模型尝试使用选择模型选项下载模型选择适合的模型开始下载 试用效果返回首页选择模型中英文对话生成代码 四、附录资源监控 五、参考…

mysql 一主多从环境搭建

前期准备 三台服务器,服务器使用的是 centos7 mysql-5.7.24-linux-glibc2.12-x86_64 安装包 使用是版本是 mysql-5.7.24 数据库安装 将 mysql 安装包上传到三台服务器上,我使用 FlashFXP 作为上传工具 解压安装包 tar -zxvf mysql-5.7.24-linux-glibc…

Redis过期策略

过期的key集合 Redis会将每个设置了过期时间的key放入到一个独立的字典中,以后会定时遍历这个字典来删除到期的key。除了定时遍历之外,他还会使用惰性策略来删除过期的key,所谓惰性策略就是在客户端访问这个key的时候,redis对key…

[C++] 由C语言过渡到C++的敲门砖

命名空间 在C/C中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染 。 在同一个工程中…

Python基础-成年人判断(if条件语句联系)

注意输入的年龄需要转化为字符串 代码: print("欢迎来到游乐场:儿童免费,成人收费") age int(input("请输入你的年龄:")) if age>18:print("你已经成年,需要补票10元") # 四个空格缩进print…

使用ssh服务器管理远程主机

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、配置网卡服务 1、配置网卡参数 2、创建网络会话 3、绑定两块网卡 二、远程控制服务 1、配置sshd服务 2、在Windows连接 3、安全密钥…

代码随想录算法训练营第12天|150. 逆波兰表达式求值、239. 滑动窗口最大值、347. 前 K 个高频元素

在补在补了 打卡Day12 1.150. 逆波兰表达式求值2.239. 滑动窗口最大值3.347. 前 K 个高频元素总结 1.150. 逆波兰表达式求值 题目链接:逆波兰表达式求值 文档讲解: 代码随想录 class Solution(object):def evalRPN(self, tokens):""":t…

数据仓库哈哈

数据仓库 基本概念数据库(database)和数据仓库(Data Warehouse)的异同 整体架构分层架构方法论ER模型(建模理论)维度模型 何为分层第一层:数据源(ODS ER模型)设计要点日志…

华为机考真题 -- 小明找位置

题目描述: 小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于nLog(n);学号为整数类型,队列规模<=10000; 输入描述: 1、第一行:输入已排成队列的小朋友的学号(正整数),以”,”隔开;例如:…

Studying-代码随想录训练营day34| 62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树

第34天&#xff0c;动态规划part02&#xff0c;牢记五部曲步骤&#xff0c;编程语言&#xff1a;C 目录 62.不同路径 63.不同路径II 343.整数拆分 96.不同的二叉搜索树 总结 62.不同路径 文档讲解&#xff1a;代码随想录不同路径 视频讲解&#xff1a;手撕不同路径 题目…

CPU/内存/综合性能评估工具汇总-2:stream

目录 一、概括二、stream 一、概括 嵌入式开发中对要设计的产品、立项的项目进行设计时&#xff0c;往往需要对关键芯片进行性能评估&#xff0c;本文主要总结基于linux系统的产品在性能评估时的工具使用总结&#xff0c;在aarch64(arm64平台下测试)&#xff0c;板卡根文件系统…

源码编译构建LAMP(企业网站架构部署与优化)

部署LAMP平台 LAMV架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词&#xff0c;具体包 括 Linux操作系统&#xff0c;Apache网站服务器、MySQL数据库服务器、P…

【Python】基础语法体系:两种常用语句

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言条件语句动态实例if语句if-else 语句if-elif-else 语句嵌套条件语句 循环语句for循环while循环 动态实例嵌套循环 前言 Python语句是构成Python程序的基本单元&#xff0c;用…