@kidswong999
您好,产品应用需要通过 1 组 2 个外部 IO 信号触发拍照正在运动的物体,2 个信号的间隔最小在 3-4ms,(触发信号每组间隔 > 200ms)
目前由于 snapshot 时间不稳定,导致第 2 个信号到来时,程序仍然在处理上 1 张 snapshot 的拍摄,
待程序完成并执行第 2 次拍照,运动物体已经移出了拍摄区
这个问题希望得到解决,我们想在产品上保持使用 OpenMV ,前期开发做了很多努力。
谢谢
@kidswong999
您好,产品应用需要通过 1 组 2 个外部 IO 信号触发拍照正在运动的物体,2 个信号的间隔最小在 3-4ms,(触发信号每组间隔 > 200ms)
目前由于 snapshot 时间不稳定,导致第 2 个信号到来时,程序仍然在处理上 1 张 snapshot 的拍摄,
待程序完成并执行第 2 次拍照,运动物体已经移出了拍摄区
这个问题希望得到解决,我们想在产品上保持使用 OpenMV ,前期开发做了很多努力。
谢谢
这两天实测了一下,使用全局快门 sensor,连续 snapshot (每次调用 snapshot 几乎没有间隔) 情况下,每次 snapshot 耗时非常接近,约 2.6ms。
但如果间歇性调用 snapshot (间隔5~1000ms),每次调用 snapshot 的耗时则不稳定,最大达到 2-3 倍时间。
sensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.GRAYSCALE) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QQQVGA) # Set frame size to QVGA (320x240)
sensor.ioctl(sensor.IOCTL_SET_TRIGGERED_MODE, True)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
sensor.set_auto_exposure(False, exposure_us = int(20))
sensor.set_auto_gain(False, 18)
sensor.skip_frames(time = 500)
# 连续调用 snapshot,基本没有间隔,每次调用约 2.6 ms
while(True):
start = pyb.micros()
img = sensor.snapshot()
end = pyb.micros()
print("%d" % (end-start))
# 连续调用 snapshot,存在间隔,每次调用约 5-6 ms
while(True):
start = pyb.micros()
img = sensor.snapshot()
end = pyb.micros()
print("A:%d" % (end-start))
pyb.delay(1) # 延迟 1ms
start = pyb.micros()
img = sensor.snapshot()
end = pyb.micros()
print("B:%d" % (end-start))
pyb.delay(1000) # 延迟 1000ms
请教一下大佬们,
实例:
img1 = sensor.snapshot() # ide 刷新图像 0
sleep(5000)
img2 = sensor.snapshot() # ide 刷新图像 1
sleep(5000)
img3 = sensor.snapshot() # ide 刷新图像 2
sleep(5000)