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 日志记录神器

完整代码

python 复制代码
#!/usr/bin/env python3
import glob
import os
from datetime import datetime

import 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_bavail
    total_size = info.f_blocks * info.f_bsize
    percent = round(free_size / total_size * 100)
    return percent


def 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 files


def record():
    """
    录制视频
    :return:
    """

    WIDTH = 640
    HEIGHT = 480
    FPS = 24.0

    cap = cv2.VideoCapture(0)
    # 设置摄像头设备分辨率
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)
    # 设置摄像头设备帧率,如不指定,默认600
    cap.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 = True
    while 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()
python 复制代码
$ chmod +x cam.py
$ nohup ./cam.py &
相关推荐
youcans_38 分钟前
2025年数学建模美赛 A题分析(4)楼梯使用人数模型
python·数学建模
查理零世3 小时前
【算法】数论基础——约数个数定理、约数和定理 python
python·算法·数论
Eiceblue4 小时前
Python 合并 Excel 单元格
开发语言·vscode·python·pycharm·excel
汉克老师4 小时前
GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
c++·学习·算法·游戏·动态规划·gesp6级
闻缺陷则喜何志丹4 小时前
【C++图论】2685. 统计完全连通分量的数量|1769
c++·算法·力扣·图论·数量·完全·连通分量
利刃大大4 小时前
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
c++·算法·二叉树·深度优先·dfs
CaptainDrake4 小时前
力扣 Hot 100 题解 (js版)更新ing
javascript·算法·leetcode
一缕叶5 小时前
洛谷P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数
算法·蓝桥杯
甜甜向上呀5 小时前
【数据结构】空间复杂度
数据结构·算法
Say-hai5 小时前
QT6 + CMAKE编译OPENCV3.9
qt·opencv