找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
MakerMare-创客海社区 门户 查看主题

openmv4 光流定点

发布者: siman | 发布时间: 2019-6-1 05:20 PM| 查看数: 56| 评论数: 1|帖子模式

目前支持微信扫码直接登陆 或邮箱验证注册登陆,结交更多好友,享用更多功能,让你轻松玩转社区!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
# MAVLink OpticalFlow Script.## This script sends out OpticalFlow detections using the MAVLink protocol to# an LIGHT/PixHawk UAV controller for position control using your openmv Cam.## P4 = TXD 115200,8,N,1import sensor, image, time, pyb, struct, mathsensor.reset() # Initialize the camera sensor.sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.GRAYSCALEsensor.set_framesize(sensor.B64x64) # or B40x30 or B64x64clock = time.clock() # Tracks FPS.old = sensor.snapshot()uart = pyb.UART(3, 115200, timeout_char = 1000)def send_optical_flow_packet(x, y, c):    temp = struct.pack("<bbiii",                       0xAA,                       0xAE,                       int(x * 100000 ), # up sample by 4                       int(y * 100000 ), # up sample by 4                       int(c * 100000))    uart.write(temp)while(True):    clock.tick() # 获取时间    img = sensor.snapshot() # 获取一帧图像    '''    find_displacement 这个功能函数使用是是2D FFT算法获得新旧两张图像的相位移动,由于OPenMV上单片机内存的问题,只能计算    64x64或者64*32的图片(openmv2),如果使用OPenMV3可以计算128*32或者32*128的图片    '''    [delta_x, delta_y, response] = old.find_displacement(img) #获取前面一张图像与刚捕获的图像之间的偏移    old = img.copy()    #print("%0.6fX   %0.6fY   %0.2fC   %0.2fFPS" % (delta_x, delta_y, response, clock.fps()))    if (not (math.isnan(delta_x) or math.isnan(delta_y) or math.isnan(response))):        send_optical_flow_packet(delta_x, delta_y, response)

这段代码引用在openmv4 r2上时产生了如图的警告,请问怎么解决?



11.png

最新评论

凡哥 发表于 2019-6-3 17:21:51
建议使用IDE自带的光流定点例程,不同版本的IDE下代码调用函数名称、变量有出入