当前位置: 首页 > news >正文

Opencv颜色追踪

废话不多说直接上代码!!

# 这是一个示例 Python 脚本。
import cv2
import numpy as npdef track_object():# 打开摄像头外接cap = cv2.VideoCapture(0)while True:# 读取摄像头帧# ret(Return Value)是一个布尔值,表示是否成功读取了一帧图像。如果成功读取,ret为True;否则,为False。# frame是读取到的图像帧。ret, frame = cap.read()# 将图像转换为HSV颜色空间。cv2.COLOR_BGR2HSV参数表示将BGR格式转换为HSV格式。#BGR(蓝绿红)格式的图像帧转换为HSV(色相、饱和度、明度)格式。HSV颜色空间更适合进行颜色相关的图像处理。hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)# 定义追踪的颜色范围(此处以蓝色物体为例,可根据需要进行微调)#第一个参数:色相(Hue):可以尝试在0179之间选择一个适当的范围。。#第二个参数:饱和度(Saturation):通常在较高的范围,例如1255之间。#第三个参数:明度(Value):根据具体场景,可以在较高的范围,例如0255之间。lower_color = np.array([90, 50, 50])upper_color = np.array([130, 255, 255])# 根据颜色范围创建掩膜。#用于过滤出在指定颜色范围内的部分。这个掩码可以用于后续的图像处理,例如颜色分割或物体识别。mask = cv2.inRange(hsv, lower_color, upper_color)#开运算(Opening):先进行腐蚀,然后进行膨胀。它有助于去除小的噪点和分离相邻的物体。#闭运算(Closing):先进行膨胀,然后进行腐蚀。它有助于填充物体中的小孔,连接相邻的物体。mask = cv2.erode(mask, None, iterations=2)   # 对掩膜进行腐蚀处理,以去除噪声  。iterations为次数mask = cv2.dilate(mask, None, iterations=2)   #膨胀处理# 寻找物体的轮廓#cv2.findContours函数来找到二值图像中的轮廓。#参数:#参数1:输  入的二值图像。通常是经过阈值处理后的图像,例如在颜色过滤之后生成的掩码。#参数2(cv2.RETR_EXTERNAL):轮廓的检索模式。有几种模式可选,常用的包括:# cv2.RETR_EXTERNAL:只检测最外层的轮廓。# cv2.RETR_LIST:检测所有的轮廓并保存到列表中。# cv2.RETR_CCOMP:检测所有轮廓并将其组织为两层的层次结构。# cv2.RETR_TREE:检测所有轮廓并重构整个轮廓层次结构。# 参数3(cv2.CHAIN_APPROX_SIMPLE):轮廓的近似方法。有两种方法可选,常用的有:# cv2.CHAIN_APPROX_SIMPLE:压缩水平、垂直和对角线方向上的所有轮廓,只保留端点。# cv2.CHAIN_APPROX_NONE:保留所有的轮廓点。#返回值:      contours:包含检测到的轮廓的列表。每个轮廓由一系列点组成。
#                   _(下划线):层次信息,通常在后续处理中可能会用到。在这里,我们通常用下划线表示我们不关心这个返回值。contours, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)# 初始化物体中心,center是一个包含两个整数的元组,表示轮廓的质心坐标center = Noneif len(contours) > 0: #说明检测到轮廓# 找到面积最大的轮廓的点集,从轮廓列表中,计算出面积最大的轮廓的点集。contourArea是计算轮廓面积的函数。#max的第一个参数:可以为一个列表。第二个参数:固定为   key=功能函数。#作用:从列表中遍历成员实现功能函数。max_contour = max(contours, key=cv2.contourArea)# 计算物体的最小外接圆,参数为:轮廓的点集#(x, y):外接圆的圆心坐标。#radius:外接圆的半径。((x, y), radius) = cv2.minEnclosingCircle(max_contour)# 计算物体的中心坐标#M为字典,里面存着 二值图像矩阵信息M = cv2.moments(max_contour)#m00 = moments['m00'] # 面积#cx = moments['m10'] / moments['m00'] # 质心的x坐标#cy = moments['m01'] / moments['m00'] # 质心的y坐标center = (int(M["m10"] / M["m00"]), int(M["m01"] / M["m00"]))# 只有当物体半径大于一定值时才显示追踪结果if radius > 10:   #外接圆半径大于10# 在图像上绘制物体的圆形轮廓和中心# 这一行代码绘制一个以 (x, y) 为圆心,半径为 radius 的圆。颜色为 (0, 255, 255) 表示BGR格式中的黄色,线宽度为2。cv2.circle(frame, (int(x), int(y)), int(radius), (0, 255, 255), 2)#这一行代码绘制一个半径为5的实心圆作为中心点,以 center 为中心。颜色为 (0, 0, 255) 表示BGR格式中的红色。。cv2.circle(frame, center, 5, (0, 0, 255), -1)# 显示实时追踪结果#这行代码使用OpenCV的cv2.imshow函数来显示帧,窗口标题为 "Object Tracking"。cv2.imshow("Object Tracking", frame)# 按下Esc键退出追踪if cv2.waitKey(1) == 27:break# 释放摄像头并关闭窗口cap.release()cv2.destroyAllWindows()# 运行物体追踪程序
track_ob

相关文章:

Opencv颜色追踪

废话不多说直接上代码!! # 这是一个示例 Python 脚本。 import cv2 import numpy as npdef track_object():# 打开摄像头外接cap cv2.VideoCapture(0)while True:# 读取摄像头帧# ret(Return Value)是一个布尔值,表示…...

计算机网络——网络可靠性及网络出口配置

1. 前言: 学习目标: 1.了解链路聚合的作用 2. 了解ACL的工作原理 3. 了解NAT的工作原理和配置 2. 网络可靠性方案 网络可靠性是指网络在面对各种异常情况或故障时,能够维持正常运行和提供服务的能力。这包括防止网络中断、减小数据丢失的可能…...

在虚拟机搭建nignx,和使用本地访问nginx的情况

下载nginx yum install nginx 查看nginx是否安装成功。 nginx -v nginx的配置文件的目录和资源的目录。 先到nginx.conf的目录下,在 /etc/nginx/nginx.conf,编辑它。 vi /etc/nginx/nginx.conf 可以看到默认的html的目录。在 /usr/share/nginx/html 下面…...

Java数据结构之《直接插入排序》问题

一、前言: 这是怀化学院的:Java数据结构中的一道难度中等的一道编程题(此方法为博主自己研究,问题基本解决,若有bug欢迎下方评论提出意见,我会第一时间改进代码,谢谢!) 后面其他编程题只要我写完…...

向量场中的几个恒等式

向量场中的几个恒等式 1. ∇ 2 A ∇ ∇ ⋅ A − ∇ ∇ A \nabla ^2 A \nabla \nabla\cdot A-\nabla \times\nabla\times A ∇2A∇∇⋅A−∇∇A 2. ∇ ⋅ ∇ A 0 \nabla \cdot \nabla \times A 0 ∇⋅∇A0 3. ∇ ∇ ϕ 0 \nabla \times \nabla \phi0 ∇∇ϕ0...

异行星低代码平台--第三方插件对接:钉钉平台对接(一)

异行星低代码平台可以集成钉钉,实现单点登录、消息推送和组织机构同步。 提示 此功能需要企业版授权才能使用。 钉钉集成​ 单点登录 异行星低代码平台集成到钉钉后,只要使用钉钉账户登录钉钉客户端,即可在钉钉中直接使用管理后台&#…...

MyBatis使用教程详解<下>

回顾上一篇博文,我们讲了如何使用注解/XML的方式来操作数据库,实际上,一个Mapper接口的实现,这两种方式是可以并存的. 上一篇博文中,我们演示的都是比较简单的SQL语句,没有设计到复杂的逻辑,本篇博文会讲解复杂SQL的实现及一些细节处理.话不多说,让我们开始吧. 一. #{}和${} …...

C++基础 -17-继承中 基类与派生构造和析构调用顺序

首先声明 定义了派生类会同时调用基类和派生的构造函数 定义了派生类会同时调用基类和派生的析构函数 那么顺序如何如下图 构造由上往下顺序执行 析构则完全相反 #include "iostream"using namespace std;class base {public:base(){cout << "base-bui…...

uniapp实现表单弹窗

uni.showModal({title: 删除账户,confirmColor:#3A3A3A,cancelColor:#999999,confirmText:确定,editable:true,//显示content:请输入“delete”删除账户,success: function (res) {console.log(res)if(res.confirm){if(res.contentdelete){console.log(123123123213)uni.setSto…...

Ajax 是什么? 如何创建一个 Ajax?

Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种使用客户端JavaScript发送异步HTTP请求到服务器的技术&#xff0c;以便在不重新加载整个页面的情况下更新部分网页内容。 使用Ajax的原因有很多&#xff0c;以下是其中一些&#xff1a; 改善用户体验&…...

【LeetCode】101. 对称二叉树

101. 对称二叉树 难度&#xff1a;简单 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#…...

O-Star|再相识

暑去秋来&#xff0c;岁月如梭&#xff0c;几名"O-Star"们已经入职一段时间&#xff0c;在这期间他们褪去青涩&#xff0c;逐渐适应了公司的工作环境和文化&#xff0c;迈向沉稳&#xff5e; 为了进一步加深校招生之间的交流与了解&#xff0c;提高校招生的凝聚力和…...

最新PHP熊猫头图片表情斗图生成源码

这是一款能生成熊猫头表情斗图的自适应系统源码&#xff0c;无论是在电脑还是手机上都可以正常使用&#xff01;这个源码集成了搜狗搜索图片接口&#xff0c;可以轻松地一键搜索数百万张图片&#xff0c;并且还包含了表情制作等功能模块。对于一些新站来说&#xff0c;这是一个…...

子虔科技出席2023WAIC“智能制造融合创新论坛”

7月7日&#xff0c;2023世界人工智能大会&#xff08;WAIC&#xff09;闵行会场在大零号湾举办。子虔科技联合创始人周洋作为专家嘉宾受邀参与智能制造融合创新论坛大会。会上探讨了工业和制造业数字化转型的机遇、挑战和对策。其中&#xff0c;周洋提到&#xff0c;工业制造业…...

递归算法学习——二叉树的伪回文路径

1&#xff0c;题目 给你一棵二叉树&#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&#xff0c;当它满足&#xff1a;路径经过的所有节点值的排列中&#xff0c;存在一个回文序列。 请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 示例…...

Android端极致画质体验之HDR播放

高动态范围HDR视频通过扩大亮度分量的动态范围(从100cd/m2到1000cd/m2)&#xff0c;以及采用更宽的色彩空间BT2020&#xff0c;提供极致画质体验。从Android10开始&#xff0c;支持HDR视频播放。 一、HDR技术 HDR技术标准包括&#xff1a;Dolby-Vision、HDR10、HLG、PQ。支持…...

【Java SE】带你在String类世界中遨游!!!

&#x1f339;&#x1f339;&#x1f339;我的主页&#x1f339;&#x1f339;&#x1f339; &#x1f339;&#x1f339;&#x1f339;【Java SE 专栏】&#x1f339;&#x1f339;&#x1f339; &#x1f339;&#x1f339;&#x1f339;上一篇文章&#xff1a;带你走近Java的…...

Android: ListView + ArrayAdapter 简单应用

​​容器与适配器&#xff1a;​​​​​ http://t.csdnimg.cn/ZfAJ7 activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"h…...

前端:实现二级菜单(点击实现二级菜单展开)

效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…...

Spark-java版

SparkContext初始化 相关知识 SparkConf 是SparkContext的构造参数&#xff0c;储存着Spark相关的配置信息&#xff0c;且必须指定Master(比如Local)和AppName&#xff08;应用名称&#xff09;&#xff0c;否则会抛出异常&#xff1b;SparkContext 是程序执行的入口&#xf…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

网络编程(UDP编程)

思维导图 UDP基础编程&#xff08;单播&#xff09; 1.流程图 服务器&#xff1a;短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...