系统迁移中,暂时无法访问,所有数据会迁移到新的网站。
OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修。
发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
每一个新的提问,单独发一个新帖子
帖子需要目的,你要做什么?
如果涉及代码,需要报错提示与全部代码文本,请注意不要贴代码图片
必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
出现错误:NameError:local variable referenced before assignment
-
import sensor, image, time black_threshold = ( -15, 25, -26, 14, -15, 25) white_threshold = ( 45, 86, -26, 11, -15, 25) sensor.reset() # 初始化摄像头传感器 sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图 sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率 sensor.skip_frames(10) #跳过几帧,让新的设置生效。 sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭 clock = time.clock() # 追踪帧率,影响不大 #__________________________________________________________________ #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个 def find_max(blobs): max_size=0 for blob in blobs: if blob[2]*blob[3] > max_size: max_blob=blob max_size = blob[2]*blob[3] return max_blob #__________________________________________________________________ while(True): clock.tick() # 跟踪快照()之间经过的毫秒数。 img = sensor.snapshot().lens_corr(1.8) # 截取一张图片 left_roi = (20,20,160,80) blobs = img.find_blobs([black_threshold],roi=left_roi) #识别黑色阈值 max_blob = find_max(blobs) #调用上面自定义函数,找到最大色块 img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2) max_blob.x() #返回识别区域左上角的x坐标 max_blob.y() #返回识别区域左上角的y坐标 max_blob.w() #返回识别区域的宽度 max_blob.h() #返回识别区域的长度 print(max_blob.x(),max_blob.y()) right_roi = (30,10,90,90) blobs = img.find_blobs([white_threshold],roi=right_roi) #识别黑色阈值 max_blobs = find_max(blobs) #调用上面自定义函数,找到最大色块 img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2) max_blobs.x() #返回识别区域左上角的x坐标 max_blobs.y() #返回识别区域左上角的y坐标 max_blobs.w() #返回识别区域的宽度 max_blobs.h() #返回识别区域的长度 print(max_blobs.x(),max_blobs.y())
-
29行39行,find_max上面加一句if blobs:
另外,39行draw_rectangle后画面就变了,会影响38行的find_blobs
-
import sensor, image, time black_threshold = ( -15, 25, -26, 14, -15, 25) white_threshold = ( 45, 86, -26, 11, -15, 25) sensor.reset() # 初始化摄像头传感器 sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图 sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率 sensor.skip_frames(10) #跳过几帧,让新的设置生效。 sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭 clock = time.clock() # 追踪帧率,影响不大 #__________________________________________________________________ #定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个 def find_max(blobs): max_size=0 for blob in blobs: if blob[2]*blob[3] > max_size: max_blob=blob max_size = blob[2]*blob[3] return max_blob #__________________________________________________________________ while(True): clock.tick() # 跟踪快照()之间经过的毫秒数。 img = sensor.snapshot().lens_corr(1.8) # 截取一张图片 left_roi = (20,20,160,80) blobs = img.find_blobs([black_threshold],roi=left_roi) #识别黑色阈值 if blobs: max_blob = find_max(blobs) #调用上面自定义函数,找到最大色块 #img.draw_rectangle((max_blob.x(), max_blob.y(), max_blob.w(), max_blob.h()), color = (255, 0, 0), thickness=2) max_blob.x() #返回识别区域左上角的x坐标 max_blob.y() #返回识别区域左上角的y坐标 max_blob.w() #返回识别区域的宽度 max_blob.h() #返回识别区域的长度 print(max_blob.x(),max_blob.y()) ''' right_roi = (30,10,90,90) blobs = img.find_blobs([white_threshold],roi=right_roi) #识别黑色阈值 max_blobs = find_max(blobs) #调用上面自定义函数,找到最大色块 #img.draw_rectangle((max_blobs.x(), max_blobs.y(), max_blobs.w(), max_blobs.h()), color = (0, 255, 0), thickness=2) max_blobs.x() #返回识别区域左上角的x坐标 max_blobs.y() #返回识别区域左上角的y坐标 max_blobs.w() #返回识别区域的宽度 max_blobs.h() #返回识别区域的长度 '''
但是我又出现这个错误了
-
@kidswong999 大佬,但是还是有问题
-
缩进不对。你得自己看懂代码再改。