结构相似性(SSIM)示例

# 本作品采用MIT许可证授权。
# 版权所有 (c) 2013-2023 OpenMV LLC。保留所有权利。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# 结构相似性(SSIM)示例
#
# 注意:运行此示例需要一张SD卡。
#
# 此示例展示了如何在OpenMV摄像头上使用SSIM算法
# 来检测两幅图像之间的差异。SSIM算法比较
# 两幅图像间8x8的像素块,从而计算两幅图像
# 之间的相似度得分。

import csi
import os
import time

# 如果sim.min低于此值,图像很可能已发生变化。
MIN_TRIGGER_THRESHOLD = -0.4

csi0 = csi.CSI()
csi0.reset()  # 重置并初始化传感器。
csi0.pixformat(csi.RGB565)  # 或csi.RGB565
csi0.framesize(csi.QVGA)  # 或csi.QQVGA(或其他)
csi0.snapshot(time=2000)  # 让新设置生效。
csi0.auto_whitebal(False)  # 关闭白平衡。
clock = time.clock()  # 跟踪FPS。

if "temp" not in os.listdir():
    os.mkdir("temp")  # 创建一个临时目录

print("About to save background image...")
csi0.snapshot(time=2000)  # 给用户时间准备。
csi0.snapshot().save("temp/bg.bmp")
print("Saved background image!")

while True:
    clock.tick()  # 跟踪snapshots()之间经过的毫秒数。
    img = csi0.snapshot()  # 拍照并返回图像。
    sim = img.get_similarity("temp/bg.bmp")
    change = "- Change -" if sim.min < MIN_TRIGGER_THRESHOLD else "- No Change -"

    print(clock.fps(), change, sim)

results matching ""

    No results matching ""