福州网站建设案例,有哪些可以做头像的网站,上海市建设合同信息表网站,上海注册公司需要多少钱前言 #xff08;1#xff09;已经有不少同学根据我上一篇博客完成了前三问#xff0c;恭喜恭喜。有很多同学卡在了第四问。 #xff08;2#xff09;我说了OpenART mini的代码是可行的。但是他们不会移植到OpenMV上#xff0c;再次我讲移植之后的代码贴出来。 #xff…前言 1已经有不少同学根据我上一篇博客完成了前三问恭喜恭喜。有很多同学卡在了第四问。 2我说了OpenART mini的代码是可行的。但是他们不会移植到OpenMV上再次我讲移植之后的代码贴出来。 3吐槽一下我就看不懂了。为啥这么多人移植不了。这不是几分钟的事情吗苦笑 识别矩形框以及对应角点 1这个地方的40行会出现一个奇怪的报错说corner没有被定义。但是前面明明调用corner r.corners()进行了一波定义。 2然后我在在前面写上了一句corner 0报错就消失了。这个bug很奇怪。希望各位注意 from machine import Pin
import sensor, image, time
import pyb
#import seekfree, pyb# 初始化TFT180屏幕
#lcd seekfree.LCD180(3)# 初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565) # 设置图像色彩格式为RGB565格式
sensor.set_framesize(sensor.QQVGA) # 设置图像大小为160*120
sensor.set_auto_whitebal(True) # 设置自动白平衡
sensor.set_brightness(3000) # 设置亮度为3000
sensor.skip_frames(time 20) # 跳过帧clock time.clock()
corner 0
while(True):clock.tick()img sensor.snapshot()# -----矩形框部分-----# 在图像中寻找矩形for r in img.find_rects(threshold 10000):# 判断矩形边长是否符合要求if r.w() 20 and r.h() 20:# 在屏幕上框出矩形img.draw_rectangle(r.rect(), color (255, 0, 0), scale 4)# 获取矩形角点位置corner r.corners()# 在屏幕上圈出矩形角点img.draw_circle(corner[0][0], corner[0][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[1][0], corner[1][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[2][0], corner[2][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[3][0], corner[3][1], 5, color (0, 0, 255), thickness 2, fill False)# 打印四个角点坐标, 角点1的数组是corner[0], 坐标就是(corner[0][0],corner[0][1])# 角点检测输出的角点排序每次不一定一致矩形左上的角点有可能是corner0,1,2,3其中一个corner1_str fcorner1 ({corner[0][0]},{corner[0][1]})corner2_str fcorner2 ({corner[1][0]},{corner[1][1]})corner3_str fcorner3 ({corner[2][0]},{corner[2][1]})corner4_str fcorner4 ({corner[3][0]},{corner[3][1]})print(corner1_str \n corner2_str \n corner3_str \n corner4_str)# 显示到屏幕上此部分会降低帧率#lcd.show_image(img, 160, 120, 0, 0, zoom0) #屏幕显示# 打印帧率#print(clock.fps())
跟踪激光灯
from machine import Pin
import sensor, image, time
import pyb
#import seekfree, pyb# 初始化激光灯控制引脚P0并置为高电平
laser_lightPin(P0, Pin.OUT)
laser_light.value(1)# 初始化TFT180屏幕
#lcd seekfree.LCD180(3)# 初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565) # 设置图像色彩格式为RGB565格式
sensor.set_framesize(sensor.QQVGA) # 设置图像大小为160*120
sensor.set_auto_whitebal(True) # 设置自动白平衡
sensor.set_brightness(3000) # 设置亮度为3000
sensor.skip_frames(time 20) # 跳过帧clock time.clock()while(True):clock.tick()img sensor.snapshot()# -----跟踪激光部分-----# 设置激光颜色阈值red_td [(56, 100, 45, 127, -128, 127)] # 这里要改# 根据阈值找到色块for b in img.find_blobs(red_td,pixels_threshold2, area_threshold15, mergeTrue,invert 0):# 在屏幕上画出色块img.draw_rectangle(b.rect(), color (0, 255, 0), scale 2, thickness 2)# 打印激光色块的中心位置# 使用b.x()获取色块矩形左上角X坐标# 使用b.y()获取色块矩形左上角Y坐标# 使用b.w()获取色块矩形宽度# 使用b.h()获取色块矩形高度# 矩形中心坐标为x w/2y h/2)print(frect {b.x() b.w()/2},{b.y() b.h()/2})break# 显示到屏幕上此部分会降低帧率#lcd.show_image(img, 160, 120, 0, 0, zoom0) #屏幕显示# 打印帧率#print(clock.fps())
识别矩形框以及对应角点并跟踪激光灯
from machine import Pin
import sensor, image, time
#import seekfree, pyb
import pyb
# 初始化激光灯控制引脚并置为高电平
laser_lightPin(P9, Pin.OUT)
laser_light.value(1)# 初始化TFT180屏幕
#lcd seekfree.LCD180(3)# 初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565) # 设置图像色彩格式为RGB565格式
sensor.set_framesize(sensor.QQVGA) # 设置图像大小为160*120
sensor.set_auto_whitebal(True) # 设置自动白平衡
sensor.set_brightness(3000) # 设置亮度为3000
sensor.skip_frames(time 20) # 跳过帧clock time.clock()while(True):clock.tick()img sensor.snapshot()# -----矩形框部分-----# 在图像中寻找矩形for r in img.find_rects(threshold 10000):# 判断矩形边长是否符合要求if r.w() 20 and r.h() 20:# 在屏幕上框出矩形img.draw_rectangle(r.rect(), color (255, 0, 0), scale 4)# 获取矩形角点位置corner r.corners()# 在屏幕上圈出矩形角点img.draw_circle(corner[0][0], corner[0][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[1][0], corner[1][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[2][0], corner[2][1], 5, color (0, 0, 255), thickness 2, fill False)img.draw_circle(corner[3][0], corner[3][1], 5, color (0, 0, 255), thickness 2, fill False)# 角点坐标打印详见OpenART mini识别矩形框以及对应角点文件# -----跟踪激光部分-----# 设置激光颜色阈值red_td [(56, 100, 45, 127, -128, 127)]# 根据阈值找到色块for b in img.find_blobs(red_td,pixels_threshold2, area_threshold15, mergeTrue,invert 0):# 在屏幕上画出色块img.draw_rectangle(b.rect(), color (0, 255, 0), scale 2, thickness 2)break# 坐标打印详见OpenART mini跟踪激光灯文件# 显示到屏幕上此部分会降低帧率#lcd.show_image(img, 160, 120, 0, 0, zoom0) #屏幕显示# 打印帧率print(clock.fps())