机器视觉篇
2024-01-08 06:00:43
1:实现LCD显示文字
'''
实验名称:LCD
版本: v1.0
日期: 2022.12
作者: 01Studio
说明:编程实现LCD显示信息。需要将01Studio.bmp文件发送到开发板
'''
import lcd,image,utime
lcd.init() #初始化LCD
lcd.clear(lcd.WHITE) #清屏白色
#显示字符
lcd.draw_string(110, 120, "Hello 01Studio!",lcd.BLACK, lcd.WHITE) #显示字符
utime.sleep(3) #延时2秒
lcd.rotation(1) #由于图像默认是240*320,因此顺时钟旋转90°。
#显示图像,必须先将01Studio.bmp文件发送到开发板才能正常运行
#发送方法:IDE菜单栏 -- 工具 --保存文件到开发板
lcd.display(image.Image("01Studio.bmp"))
?
2:摄像头应用 :
# Hello World 例程
# 欢迎使用 CanMV IDE!
#
# 1. 将开发板连接到电脑;
# 2. 在工具->选择开发板下选择合适的开发板;
# 3. 点击连接并选择串口;
# 4. 连接成功后点击绿色按钮开始运行!
#
#翻译和注释:01Studio
import sensor, image, time, lcd
lcd.init(freq=15000000) #初始化LCD
sensor.reset() #复位和初始化摄像头,执行sensor.run(0)停止。
sensor.set_vflip(1) #将摄像头设置成后置方式(所见即所得)
sensor.set_pixformat(sensor.RGB565) # 设置像素格式为彩色 RGB565 (或灰色)
sensor.set_framesize(sensor.QVGA) # 设置帧大小为 QVGA (320x240)
sensor.skip_frames(time = 2000) # 等待设置生效.
clock = time.clock() # 创建一个时钟来追踪 FPS(每秒拍摄帧数)
while(True):
clock.tick() # 更新 FPS 时钟.
img = sensor.snapshot() # 拍摄一个图片并保存.
#img.draw_string(0, 0, 'FPS: '+str(clock.fps()), color = (255, 255,255), scale = 3,mono_space = False)
lcd.display(img) # 在LCD上显示
print(clock.fps()) # 注意: 当 K210 连接到 IDE 时候,运行速度减
#半,因此当断开 IDE 时 FPS 会提升。
3;画图:
'''
实验名称:画各种图形和写字符
版本: v1.0
日期: 2022.9
作者: 01Studio
'''
import sensor, image, time, lcd
lcd.init(freq=15000000)
sensor.reset() #复位摄像头
sensor.set_vflip(1) #将摄像头设置成后置方式(所见即所得)
sensor.set_pixformat(sensor.RGB565) # 设置像素格式 RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # 设置帧尺寸 QVGA (320x240)
sensor.skip_frames(time = 2000) # 灯带设置响应.
clock = time.clock() # 新建一个时钟对象计算FPS.
while(True):
clock.tick()
img = sensor.snapshot()
# 画线段:从 x0, y0 到 x1, y1 坐标的线段,颜色红色,线宽度 2。
img.draw_line(20, 20, 100, 20, color = (255, 0, 0), thickness = 2)
#画矩形:绿色不填充。
img.draw_rectangle(150, 20, 100, 30, color = (0, 255, 0),
thickness = 2, fill = False)
#画圆:蓝色不填充。
img.draw_circle(60, 120, 30, color = (0, 0, 255), thickness = 2,
fill = False)
#画箭头:白色。
img.draw_arrow(150, 120, 250, 120, color = (255, 255, 255), size =
20, thickness = 2)
#画十字交叉。
img.draw_cross(60, 200, color = (255, 255, 255), size = 20,
thickness = 2)
#写字符。
img.draw_string(150, 200, "Hello 01Studio!", color = (255, 255,
255), scale = 2,mono_space = False)
lcd.display(img) # Display on LCD
print(clock.fps()) # Note: MaixPy's Cam runs about half as fast when connected
# to the IDE. The FPS should increase once disconnected.
4:颜色识别
'''
实验名称:颜色识别
版本: v1.0
日期: 2022.9
作者: 01Studio
实验目的:单个颜色识别
'''
import sensor,lcd,time
#摄像头初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #后置模式,所见即所得
#lcd初始化
lcd.init()
clock=time.clock()
# 颜色识别阈值 (L Min, L Max, A Min, A Max, B Min, B Max) LAB模型
# 下面的阈值元组是用来识别 红、绿、蓝三种颜色,当然你也可以调整让识别变得更好。
thresholds = [(30, 100, 15, 127, 15, 127), # 红色阈值
(30, 100, -64, -8, -32, 32), # 绿色阈值
(0, 30, 0, 64, -128, -20)] # 蓝色阈值
while True:
clock.tick()
img=sensor.snapshot()
blobs = img.find_blobs([thresholds[2]]) # 0,1,2分别表示红,绿,蓝色。
if blobs:
for b in blobs:
tmp=img.draw_rectangle(b[0:4])
tmp=img.draw_cross(b[5], b[6])
lcd.display(img) #LCD显示图片
print(clock.fps()) #打印FPS
5:计数
'''
实验名称:颜色识别
版本: v1.0
日期: 2022.9
作者: 01Studio
实验目的:单个颜色识别
'''
import sensor,lcd,time
#摄像头初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #摄像头后置模式
#lcd初始化
lcd.init()
clock=time.clock()
# 颜色识别阈值 (L Min, L Max, A Min, A Max, B Min, B Max) LAB模型
# 下面的阈值元组是用来识别 红、绿、蓝三种颜色,当然你也可以调整让识别变得更好。
thresholds = [(18, 72, -13, 31, 18, 83)]#黄色跳线帽阈值
while True:
clock.tick()
img=sensor.snapshot()
blobs = img.find_blobs([thresholds[0]]) # 找黄色跳线帽色块
if blobs:
print(len(blobs))
#计算色块数量并在LCD显示
img.draw_string(0, 0, 'Num: '+str(len(blobs)), color = (255, 255,255), scale = 3,mono_space = False)
for b in blobs:
tmp=img.draw_rectangle(b[0:4])
tmp=img.draw_cross(b[5], b[6])
lcd.display(img) #LCD显示图片
print(clock.fps()) #打印FPS
6:二维码识别
#实验名称:二维码识别
#版本:v1.0
#日期:2022.9
#翻译和注释:01Studio
import sensor,lcd,time
#摄像头模块初始化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(1) #后置模式
sensor.skip_frames(30)
#lcd初始化
lcd.init()
clock = time.clock()
while True:
clock.tick()
img = sensor.snapshot()
res = img.find_qrcodes() #寻找二维码
if len(res) > 0: #在图片和终端显示二维码信息
img.draw_rectangle(res[0].rect())
img.draw_string(2,2, res[0].payload(), color=(0,128,0), scale=2)
print(res[0].payload())
lcd.display(img)
print(clock.fps())
文章来源:https://blog.csdn.net/hvbkbb/article/details/135447199
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!