【自动化测试】拍照与闪光灯联动测试

背景

我们的相机与闪光灯之间必须实现精密的同步,以防止时序上的任何偏差导致成像出现问题,比如生成黑暗的照片。为此,我们计划开发一个自动化测试工具,它能检测10万张图片中是否存在暗图现象。

代码

python 复制代码
import cv2
import numpy as np

def process_frame(frame):
    # 你的帧处理代码
    return cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

def is_dark(frame, threshold=30):
    """
    检查图像是否暗。
    :param frame: 灰度图像。
    :param threshold: 判断图像为暗图的亮度阈值。
    :return: 如果图像暗返回True,否则返回False。
    """
    if len(frame.shape) == 2 or frame.shape[2] == 1:
        gray_frame = frame
    else:
        gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    average_brightness = np.mean(gray_frame)
    return average_brightness < threshold

def main():
    rtsp_url = "rtsp://192.168.1.6/live/ch00_0"  # 替换成你的RTSP流地址
    cap = cv2.VideoCapture(rtsp_url)

    if not cap.isOpened():
        print("无法打开视频流或文件")
        return

    while True:
        ret, frame = cap.read()
        if not ret:
            break

        processed_frame = process_frame(frame)

        # 检查当前帧是否过暗
        if is_dark(processed_frame):
            print("检测到暗图")

        # 显示处理后的帧
        cv2.imshow('Processed Frame', processed_frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    main()

注意 FAQ

  1. 当您注释掉if cv2.waitKey(1) & 0xFF == ord('q'): 这行代码后,遇到的问题可能是由于缺少了 OpenCV 窗口的更新机制。在 OpenCV 中,cv2.waitKey() 函数不仅用于检测按键输入,还负责处理窗口的事件,比如刷新显示的图像;如果不需要退出机制,可以修改为 cv2.waitKey(1)即可;
相关推荐
戴西软件1 小时前
戴西软件入选2026年安徽省制造业数智化转型服务商名单
java·大数据·服务器·前端·人工智能
牧子川1 小时前
014-国产大模型API封装
人工智能·大模型·api 调用
Master_oid2 小时前
机器学习42:线性回归基础篇
人工智能·机器学习·线性回归
anthea_luo2 小时前
机器学习中的视觉与自然语言处理
人工智能
明月照山海-2 小时前
机器学习周报四十五
人工智能·机器学习
weelinking4 小时前
【2026】08_Claude与版本控制:Git协作技巧
数据库·人工智能·git·python·数据挖掘·交互·cloudera
黄焖鸡能干四碗8 小时前
固定资产管理系统建设方案和源码(Java源码)
大数据·数据库·人工智能·物联网·区块链
颖火虫盟主8 小时前
AI DSL — 为 AI Skill 设计“自然语言脚本语法“的探索
人工智能
初学大模型8 小时前
载体的背叛:论脉冲编码在神经形态计算中的物理困境
人工智能
叶子Talk8 小时前
xAI发布Grok Build,全球AI终端展深圳开幕:AI从云端走向终端
人工智能·ai·agent·xai·grok build·终端ai