opencv-python 印刷质量缺陷的视觉检测

Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练。

** Python+Yolov8+ONNX实时缺陷目标检测原文
labelimg使用指南
windows使用YOLOv8训练自己的模型(0基础保姆级教学)

python-opencv五种自动白平衡算法,附源码直接可用(均值、完美反射、灰度世界、动态阈值、基于图像分析的偏色检测及颜色校正)

7系统中,您也可以通过控制面板来打开摄像头。打开开始菜单,点击控制面板,选择硬件和声音,然后点击设备和打印机。找到您的摄像头设备,右键点击选择启用。

Opencv+Python实现缺陷检测

https://blog.51cto.com/u_14224/7412621

###################################################################################

用YOLOv8一站式解决图像分类、检测、分割

opencv-python扁钢表面缺陷分类

深度学习实现缺陷检测算法汇总

使用YOLOv8进行工业视觉缺陷检测,基于Aidlux完成本地终端部署

表面缺陷检测数据集汇总及其相关项目推荐 | Github开源

aidlux项目主页

使用YOLOv8进行工业视觉缺陷检测,基于Aidlux完成本地终

aidlux项目文档

基于Aidlux+Yolo5-Lite,全流程实现桌面级监测系统

Aidlux s855边缘计算盒子
下面简要介绍下Aidlux:Aidlux是一套基于安卓平台边缘计算系统,类似于在安卓平台中嵌入ubuntu系统,可以在安卓手机中下载,也可以在Aidlux发布的边缘计算盒子中运行,我是在Aidlux s855边缘计算盒子中使用,用安卓手机也可以运行demo,只不过边缘计算盒子考虑工业性,散热、接口更丰富。

###########################################################################

使用Python3实现树莓派+摄像头循环监控录像

实现效果
使用opencv调用USB外置摄像头进行循环录像,视频分段录制后进行保存(代码中是每5分钟存一下),当tf卡的可用空间不足50%的时候删除已保存视频最早的文件,然后继续新的录制

依赖轮子
opencv-python 图像处理必备
logzero 日志记录神器
完整代码

#!/usr/bin/env python3
import glob
import os
from datetime import datetimeimport cv2
import logzero
from logzero import logger# 配置logzero保存日志到文件,单文件最大5MB,最多保存3份
logzero.logfile('/home/pi/video/log.log', maxBytes=5e6, backupCount=3)# 限制至少保留可用磁盘空间百分比
SPACE_LIMIT = 50
# 录制视频的分段时长(单位秒)
PER_LENGTH = 5 * 60
# 视频保存位置
LOCATION = '/home/pi/video/'def disk_per():"""计算当前/目录可用空间比率:return: 返回整数百分比结果"""info = os.statvfs('/')free_size = info.f_bsize * info.f_bavailtotal_size = info.f_blocks * info.f_bsizepercent = round(free_size / total_size * 100)return percentdef get_files_list(exp):"""获取指定位置下的指定后缀文件列表:param exp: 搜索路径表达式.格式: /home/pi/*.avi:return:"""files = list(filter(os.path.isfile, glob.glob(exp)))# 按照文件创建时间倒序排列files.sort(key=lambda x: os.path.getctime(x), reverse=True)return filesdef record():"""录制视频:return:"""WIDTH = 640HEIGHT = 480FPS = 24.0cap = cv2.VideoCapture(0)# 设置摄像头设备分辨率cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)# 设置摄像头设备帧率,如不指定,默认600cap.set(cv2.CAP_PROP_FPS, 24.0)# 建议使用XVID编码,图像质量和文件大小比较都兼顾的方案fourcc = cv2.VideoWriter_fourcc(*'XVID')start_time = datetime.now()filename = LOCATION + start_time.strftime('%Y-%m-%d_%H-%M-%S') + '.avi'out = cv2.VideoWriter(filename, fourcc, FPS, (WIDTH, HEIGHT))flag = Truewhile flag:# 检测磁盘空间是否充足if disk_per() > SPACE_LIMIT:# 开始当前录制视频时段if (datetime.now() - start_time).seconds >= PER_LENGTH:# 到达视频分段时长后停止录制logger.info(f'分段录制结束,文件保存为{filename}')out.release()# 重新开始新的视频录制start_time = datetime.now()filename = LOCATION + start_time.strftime('%Y-%m-%d_%H-%M-%S') + '.avi'out = cv2.VideoWriter(filename, fourcc, FPS, (WIDTH, HEIGHT))else:ret, frame = cap.read()if ret:out.write(frame)else:# 磁盘使用空间达到配额后删除最早的视频文件logger.warn(f'磁盘可用空间不足{SPACE_LIMIT}%,将删除最早保存的视频文件')files = get_files_list(LOCATION + '*.avi')os.remove(files[0])logger.info(f'{files[0]}已删除')cap.release()if __name__ == '__main__':logger.info('开始录制视频')record()
$ chmod +x cam.py
$ nohup ./cam.py &

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

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

相关文章

Chrome和chromedriver版本不匹配导致的UI自动化测试无法运行的问题

今天,遇到一个小问题,本来跑的好好UI自动化测试脚本突然不好使了,期初怀疑是页面元素有调整导致脚本出现异常无法正常执行,经排查后发现近期页面没有任何调整。 这下头大了,啥也没改,怎么好好的脚本不能跑…

Vue3鼠标拖拽生成区域块并选中元素

Vue3鼠标拖拽生成区域块并选中元素&#xff0c;选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…

vite打包vue2 history路由模式的的项目部署线上后<router-view />页面显示空白,命令行也不报错,本地是没有问题的

如题&#xff0c;本地畅通无阻&#xff0c;但是部署到服务器上就无法访问&#xff0c;本地是localhost://login可以访问到&#xff0c;但是因为我这里所有前端项目有一个路由映射&#xff0c;相当于是一个二级路由&#xff0c;导致线上路由出错&#xff0c;所以给路由加一个bas…

LVS+keepalived——高可用集群

lvskeepalived&#xff1a;高可用集群 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用&#xff0c;于是keepalived这个软件。实现的是调度器的高可用。但是&#xff1a;keepalived不是专门为lvs集群服务的&#xff0c;也可以做其他代理服务器的高可用。 lvs的…

基于SSM的进销存管理系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

Vue typescript项目配置eslint+prettier

1.安装依赖 安装 eslint yarn add eslint --dev安装 eslint-plugin-vue yarn add eslint-plugin-vue --dev主要用于检查 Vue 文件语法 安装 prettier 及相关插件 yarn add prettier eslint-config-prettier eslint-plugin-prettier --dev安装 typescript 解析器、规则补充 …

Spring-IOC-@Import的用法

1、Car.java package com.atguigu.ioc; import lombok.Data; Data public class Car {private String cname; }2、 MySpringConfiguration2.java package com.atguigu.ioc; import org.springframework.context.annotation.Bean; import org.springframework.context.annotatio…

树莓派的的串口通信协议

首先&#xff0c;回顾一下串口的核心知识点&#xff0c;也是面试重点&#xff1a; 串口通信通常使用在多机通讯中串口通信是全双工的决定串口通信的成功与否的是 数据格式 和 波特率数据格式&#xff1a;1. 数据位 2.停止位 3. 奇偶校验位 树莓派恢复串口 回忆前几节树莓派刷机…

Vue3 配置全局 scss 变量

variables.scss $color: #0c8ce9;vite.config.ts // 全局css变量css: {preprocessorOptions: {scss: {additionalData: import "/styles/variables.scss";,},},},.vue 文件使用

AI大发展:人机交互、智能生活全解析

目录 ​编辑 人工智能对我们的生活影响有多大 人工智能的应用领域 一、机器学习与深度学习 二、计算机视觉 三、自然语言处理 四、机器人技术 五、智能推荐系统 六、智能城市和智能家居 ​编辑 自己对人工智能的应用 自己的人工智能看法&#xff1a;以ChatGPT为例 …

watcheffect的用法

需求&#xff1a;监听用户给金额字段改大了还是改小了 let previousAmount: number | null null; watchEffect(() > {for (let i 0; i < projectList.value.length; i) {const currentAmount Number(projectList.value[i].je);if (previousAmount ! null) { //不是空…

一种全新且灵活的 Prompt 对齐优化技术

并非所有人都熟知如何与 LLM 进行高效交流。 一种方案是&#xff0c;人向模型对齐。 于是有了 「Prompt工程师」这一岗位&#xff0c;专门撰写适配 LLM 的 Prompt&#xff0c;从而让模型能够更好地生成内容。 而另一种更为有效的方案则是&#xff0c;让模型向人对齐。 这也是…

BE节点经常挂掉:[IO_ERROR]failed to list /proc/27349/fd/: No such file or directory

最近BE节点经常挂掉 Caused by: java.lang.RuntimeException: Failed to execute internal SQL. org.apache.doris.common.UserException: errCode 2, detailMessage There is no scanNode Backend available.[10031: not alive] OriginStatement{originStmtSELECT * FROM _…

分布式任务调度-XXL-job

目录 源码仓库地址 前置环境 docker容器环境配置 连接linux数据库&#xff0c;并创建任务调度所用到的数据库xxl-job。 用到的表sql 打开映射网址 后端配置使用任务调度 依赖 yml配置 使用架构 config配置 job使用 快速入门使用 任务调度执行器 任务调度执行管理​编…

ck 配置 clickhouse-jdbc-bridge

背景 ck可以用过clickhouse-jdbc-bridge技术来直接访问各数据库 安装配置 需要准备的文件 clickhouse-jdbc-bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge 理论上需要下载源码然后用mavne打包&#xff0c;但提供了打包好的&#xff0c;可以推测用的是mave…

USART的标准库编程

使用USART与计算机通信 电脑上只有usb端口 没有TX 和RX需要一个USB转TTL电平模块来实现通信 芯片C8T6中只有三个UASRT 选其中一个UASRT来通信即可 那么如何定位那个USART的TX 和RX引脚呢&#xff1f; 方式1 查找最小系统板引脚分布图 查找USART1的引脚 RTS CTS是硬件流控 CK…

iOS 17.0 YYText 崩溃处理

YYText&#xff0c;发现在iOS 17上运行会崩溃&#xff0c;触发了系统的断言&#xff1a; UIGraphicsBeginImageContext() failed to allocate CGBitampContext: size{382, 0}, scale3.000000, bitmapInfo0x2002. Use UIGraphicsImageRenderer to avoid this assert. 查了下 ap…

C练习题_15

一、单项选择题(本大题共20小题&#xff0c;每小题2分&#xff0c;共40分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 在下列说法中&#xff0c;&#xff08;&#xff09;是正确的。 A.C程序从第一个函数开始…

Cache学习(1):常见的程序运行模型多级Cache存储结构

0 背景&#xff1a;常见的程序运行模型&#xff08;为什么要Cache&#xff09; 主存&#xff1a;Main Memory&#xff0c;硬件实现为RAM&#xff0c;产品形态&#xff1a;DDR&#xff08;例如&#xff1a; DDR3、DDR4等&#xff09;磁盘设备&#xff1a;Flash Memory&#xff…

IDEA如何将本地项目推送到GitHub上?

大家好&#xff0c;我是G探险者。 IntelliJ IDEA 是一个强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它支持多种编程语言和工具。它也内置了对Git和GitHub的支持&#xff0c;让开发者可以轻松地将本地项目推送到GitHub上。以下是一个操作手册&#xff0c;描述了…