gpt4实现对摄像头帧缓冲区图像的LAB阈值选择界面(python-opencv)
代码全是GPT4写的,我就提出Prompt和要改的地方而已。
图形界面效果

可复制阈值:(xxx, xxx, xxx, xxx, xxx, xxx)
代码
import cv2
import numpy as np
import time
from tkinter import *
from PIL import Image, ImageTk
import pyperclip # new# Global variables for storing the LAB color space threshold values
l_min_g, a_min_g, b_min_g, l_max_g, a_max_g, b_max_g = 0, 0, 0, 255, 255, 255class App:def __init__(self, window, window_title, video_source=0):self.window = windowself.window.title(window_title)self.video_source = video_sourceself.ok = Falseself.vid = cv2.VideoCapture(self.video_source)if not self.vid.isOpened():raise ValueError("Unable to open video source", video_source)self.canvas1 = Canvas(window, width=480, height=360)self.canvas1.pack(side=LEFT)self.canvas2 = Canvas(window, width=480, height=360)self.canvas2.pack(side=LEFT)self.btn_snapshot = Button(window, text="Snapshot", width=50, command=self.snapshot)self.btn_snapshot.pack(anchor=CENTER, expand=True)self.l_min_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="L_min", length=480)self.l_min_slider.pack()self.a_min_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="A_min", length=480)self.a_min_slider.pack()self.b_min_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="B_min", length=480)self.b_min_slider.pack()self.l_max_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="L_max", length=480)self.l_max_slider.pack()self.a_max_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="A_max", length=480)self.a_max_slider.pack()self.b_max_slider = Scale(window, from_=0, to=255, orient=HORIZONTAL, label="B_max", length=480)self.b_max_slider.pack()self.btn_copy = Button(window, text="Copy LAB Values", command=self.copy_values) # newself.btn_copy.pack()self.delay = 10self.update()self.window.mainloop()def snapshot(self):if self.ok:cv2.imwrite("frame-" + time.strftime("%d-%m-%Y-%H-%M-%S") + ".jpg", cv2.cvtColor(self.frame, cv2.COLOR_RGB2BGR))def copy_values(self): # newl_min = self.l_min_slider.get()a_min = self.a_min_slider.get()b_min = self.b_min_slider.get()l_max = self.l_max_slider.get()a_max = self.a_max_slider.get()b_max = self.b_max_slider.get()values_str = f"({l_min}, {a_min}, {b_min}, {l_max}, {a_max}, {b_max})"pyperclip.copy(values_str)def update(self):ret, self.frame = self.vid.read()if ret:self.frame = cv2.cvtColor(self.frame, cv2.COLOR_BGR2RGB)self.photo1 = ImageTk.PhotoImage(image=Image.fromarray(self.frame).resize((480, 360)))self.canvas1.create_image(0, 0, image=self.photo1, anchor=NW)l_min = self.l_min_slider.get()a_min = self.a_min_slider.get()b_min = self.b_min_slider.get()l_max = self.l_max_slider.get()a_max = self.a_max_slider.get()b_max = self.b_max_slider.get()lower_bound = np.array([l_min, a_min, b_min])upper_bound = np.array([l_max, a_max, b_max])mask = cv2.inRange(cv2.cvtColor(self.frame, cv2.COLOR_RGB2Lab), lower_bound, upper_bound)self.photo2 = ImageTk.PhotoImage(image=Image.fromarray(mask).resize((480, 360)))self.canvas2.create_image(0, 0, image=self.photo2, anchor=NW)self.ok = Trueself.window.after(self.delay, self.update)App(Tk(), "LAB Thresholding", video_source=2)
video_source参数为摄像头ID。
被取代是我的命运,我了解。。。
相关文章:
gpt4实现对摄像头帧缓冲区图像的LAB阈值选择界面(python-opencv)
代码全是GPT4写的,我就提出Prompt和要改的地方而已。 图形界面效果 可复制阈值:(xxx, xxx, xxx, xxx, xxx, xxx) 代码 import cv2 import numpy as np import time from tkinter import * from PIL import Image, ImageTk import pyperclip # new# G…...
Stable Diffusion WebUI 集成 LoRA模型,给自己做一张壁纸 Ubuntu22.04 rtx2060 6G
LoRA概念 LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训…...
Flink 读写Kafka总结
前言 总结Flink读写Kafka Flink 版本 1.15.4 Table API 本文主要总结Table API的使用(SQL),官方文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/connectors/table/kafka/ kerberos认证相关配置 …...
LiDAR SLAM 闭环——BoW3D论文详解
标题:BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM 作者:Yunge Cui,Xieyuanli Chen,Yinlong Zhang,Jiahua Dong,Qingxiao Wu,Feng Zhu 机构:中科院沈阳自动化研究所 来源:2022 RAL 现算法已经开源&#…...
Android NTP时间同步源码分析
Android NTP时间同步源码分析 Android系统设置自动时间后,如果连接了可用的网络。会同步网络时间。这个处理是 NetworkTimeUpdateService完成的。某些定制化的系统,需要禁止网络时间同步。比如仅仅使用GPS时间。基于Android9,分析一下 Andro…...
数据库之MySQL字符集与数据库操作
目录 字符集 CHRARCTER SET 与COLLATION的关联 CHRARCTER SET 定义 基础操作 查看当前MySQL Server支持的 CHARACTER SET 查看特定字符集信息(主要包含默认的COLLATION 与 MAXLEN) COLLATION 定义 COLLATION后缀 基础操作 查看MySQL Server支持的…...
搜索引擎概念解析
搜索引擎概念解析 什么是搜索引擎 MySQL搜索引擎举例 搜索引擎是一种用于在互联网上搜索并呈现相关信息的工具。它通过自动扫描和索引大量网页内容,并根据用户提供的关键词或查询条件,返回与之相关的网页链接和摘要。 当用户在搜索引擎中输入关键词或…...
网页链接投票链接步骤公众号投票链接制作制作投票
大家在选择投票小程序之前,可以先梳理一下自己的投票评选活动是哪种类型,目前有匿名投票、图文投票、视频投票、赛事征集投票等。 我们现在要以“笛乐悠扬”为主题进行一次投票活动,我们可以在在微信小程序搜索,“活动星”投票小程…...
【通信安全CACE-管理类基础级】第7章 安全运维
资源 中国通信企业协会网络安全人员能力认证考试知识点大纲 中国通信企业协会网络安全人员能力认证管理类基础级考试课件 中国通信企业协会网络安全人员能力认证考试管理类基础级复习资料 中国通信企业协会网络安全人员能力认证考试管理类基础级模拟题 系列文章 【通信安全CAC…...
随手笔记——将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布(Python版)
随手笔记——将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布(Python版) 说明关键函数代码 说明 将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布,主要通过CvBridge的cv2_to_imgmsg和imgmsg_to_cv2函数࿰…...
Win11系统如何安装Oracle数据库(超级详细)
前言:在我们安装Oracle之前我们得理解Oracle数据库的优点是什么: Oracle是一个功能强大、可扩展和全面的数据库平台,具有广泛的功能和企业级能力,适用于处理复杂的企业级应用和大型数据集。 目录 一.下载Oracle数据库软件&…...
【代理服务器】Squid 反向代理与Nginx缓存代理
目录 一、Squid 反向代理1.1工作机制1.2反向代理实验1.3清空iptables规则,关闭防火墙1.4验证 二、使用Nginx做反向代理缓存服务器三CDN简介3.1什么是CDN3.1CDN工作原理 一、Squid 反向代理 如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的…...
目标检测之遮挡物体检测
一、遮挡的类别 类内遮挡,目标被同一类别的目标遮挡类间遮挡,目标被其它类别的目标遮挡 二、解决方法 数据标注 精调遮挡目标的GT边界框 数据增强 cutout:在训练时,随机mask目标,提升模型对遮挡的应对能力mosaic…...
Vim 命令大全
文章目录 Vim 命令大全移动光标编辑文本查找和替换保存和退出打开多个文件:在文件之间切换:打开新窗口切换窗口其他常用命令 Vim 命令大全 移动光标 h: 左移光标j: 下移光标k: 上移光标l: 右移光标0: 移动光标到行首$: 移动光标到行末G: 移动光标到文件…...
【Visual Studio】printf() 函数无输出显示问题。使用 C++ 语言,配合 Qt 开发串口通信界面
使用 C 语言,配合 Qt 开发串口通信界面时,遇到 printf() 函数无输出显示。 在工程属性的对应位置添加 editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe 即可,如下图所示。 成功运行的截图如下: Ref. Visual Studio 20…...
Linux安装配置Oracle+plsql安装配置(详细)
如果觉得本文不够详细,没有效果图,可移步详细版: Linux安装配置Oracleplsql安装配置(超详细)_超爱慢的博客-CSDN博客 目录 1.安装虚拟机系统 1.安装虚拟机 2.配置虚拟机 1.设置机器名 2.修改域名映射 3.固定IP…...
软件UI工程师的职责模板
软件UI工程师的职责模板1 职责: 1.负责产品的UI视觉设计(手机软件界面 网站界面 图标设计产品广告及 企业文化的创意设计等); 2.负责公司各种客户端软件客户端的UI界面及相关图标制作; 3.设定产品界面的整体视觉风格; 4.为开发工程师创建详细的界面说明文档&…...
【Python】Selenium操作cookie实现免登录
文章目录 一、查看浏览器cookie二、获取cookie基本操作三、获取cookie并实现免登录四、封装成函数 一、查看浏览器cookie cookie、session、token的区别: cookie存储在浏览器本地客户端,发送的请求携带cookie时可以实现登录操作。session存放在服务器。…...
【数据结构与算法篇】之时间复杂度与空间复杂度
【数据结构与算法篇】之时间复杂度与空间复杂度 一、时间复杂度1.1时间复杂度的定义1.2 常见的时间复杂度的计算1.2.1 常数时间复杂度( O ( 1 ) ) O(1)) O(1))1.2.2 线性时间复杂度( O ( N ) O(N) O(N))1.2.3 对数时间复杂度( O (…...
硬件性能 - 网络瓶颈分析
简介 本文章主要通过Linux命令查看网络信息、判断是否出现网络瓶颈等简单分析方法。其他硬件性能分析如下: 1. 硬件性能 - CPU瓶颈分析 2. 硬件性能 - 掌握内存知识 3. 硬件性能 - 磁盘瓶颈分析 目录 1. 监控命令 sar 2. 带宽利用率 3. 网络延迟 4. 网络连接数 …...
ESXi 8.0U3i在部署过程中出现技嘉(GIGABYTE)Z390 I AORUS PRO WIFI主板+万兆intel x520-da2 sr2 82599ES万兆网卡不识别处理方法
你遇到的问题核心是:ESXi 8.0U3i 原生 / 通用集成镜像缺少对技嘉 Z390 I AORUS PRO WIFI 板载网卡、Intel X520-DA2(82599ES)万兆网卡及部分 NVMe/USB 控制器的完整驱动支持。解决思路是:先排查 BIOS → 再用定制镜像(下载现成或自己封装)→ 最后验证驱动…...
对于对话中的文本简化,OpenClaw 的压缩比和可读性如何平衡?
关于文本简化中压缩比与可读性的平衡,这其实是一个在工程实践中经常遇到的核心矛盾。OpenClaw 的处理方式,仔细推敲起来,背后反映的是一种偏向实用主义的权衡思路。 压缩比高,通常意味着文本被大幅度精简,只保留最核心…...
ECDICT开源英汉词典数据库:构建高可用分布式语言服务的完整技术方案
ECDICT开源英汉词典数据库:构建高可用分布式语言服务的完整技术方案 【免费下载链接】ECDICT Free English to Chinese Dictionary Database 项目地址: https://gitcode.com/gh_mirrors/ec/ECDICT ECDICT是一个完全免费的开源英汉词典数据库,为开…...
蓝芯算力:RISC-V 芯片破局之路
字节跳动前高管卢山创办的蓝芯算力完成数亿元融资,专注 RISC-V AI 算力芯片研发。目前已获超 20 万片订单,在 x86 和 ARM 主导的市场中开辟差异化道路。创始人背景与创业初衷蓝芯算力创始人卢山毕业于清华,有超 20 年芯片设计经验。他曾就职英…...
AI结对编程:利用快马平台智能助手深度理解和优化PyTorch代码
最近在折腾PyTorch项目时,发现很多细节问题光靠查文档效率太低。后来尝试用InsCode(快马)平台的AI辅助功能,发现它不仅能解释代码原理,还能直接给出优化方案,简直是深度学习开发的"外挂"。分享几个实用场景:…...
Lean 4:用数学证明构建高可靠软件的革命性工具
Lean 4:用数学证明构建高可靠软件的革命性工具 【免费下载链接】lean4 Lean 4 programming language and theorem prover 项目地址: https://gitcode.com/GitHub_Trending/le/lean4 问题:当系统崩溃成为不可承受之重 2024年3月,某医疗…...
智能号码定位引擎:企业级地理信息快速响应解决方案
智能号码定位引擎:企业级地理信息快速响应解决方案 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors…...
nli-distilroberta-base在数据库智能查询中的应用:自然语言转SQL实战
nli-distilroberta-base在数据库智能查询中的应用:自然语言转SQL实战 1. 引言:当自然语言遇上数据库查询 "帮我找出上个月销售额超过10万的产品"——这样的需求如果能让数据库直接理解该多好?传统SQL查询需要专业技术人员编写复杂…...
终极指南:如何用虚拟手柄驱动解锁Windows游戏新玩法
终极指南:如何用虚拟手柄驱动解锁Windows游戏新玩法 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 你是否曾梦想过用键盘鼠标玩主机游戏&#x…...
嘎嘎降AI退款申请完整流程:不达标怎么拿回费用的具体步骤
嘎嘎降AI退款申请完整流程:不达标怎么拿回费用的具体步骤 这篇教程来自实操经验。帮三个同学处理过论文AI率,加上自己的,前后操作了十几次。把流程总结成教程,尽量详细。 核心工具推荐嘎嘎降AI(www.aigcleaner.com&a…...
