目录
消除画面畸变
img = sensor.snapshot().lens_corr(strength = 1.8, zoom = 1.0)
画面二值化
img = sensor.snapshot().binary([(0,64)])
(0, 64)
中的0
代表低于这个阈值的部分将被设置为0(黑色),而64
代表高于或等于这个阈值的部分将被设置为255(白色)。在这个例子中,像素的亮度级别范围是0到255(8位灰度值),因此阈值64是中间的一个值。这意味着任何亮度小于64的像素会被设置为黑色,任何亮度等于或大于64的像素会被设置为白色。
画面翻转
sensor.set_vflip(True)
sensor.set_hmirror(True)
设置画面曝光度+视窗大小
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
sensor.set_auto_exposure(False, exposure_us = 2000) #曝光度调节
sensor.set_windowing((99,38,160,160)) #设置视窗画面大小
LED+延时函数
import pyb
from pyb import LED
led = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
pyb.delay(50)
led.off() # 关闭红色LED(LED1)
led.on() # 开启红色LED(LED1)
按键函数(已消抖)
import pyb
from pyb import Pin #调用引脚
pin8 = Pin('P8', Pin.IN, Pin.PULL_UP)
pin7 = Pin('P7', Pin.IN, Pin.PULL_UP) #引脚初始化
key1 = pin7.value()
key2 = pin8.value() #获取按键目前状态(按键另一端接地)
while True:
if key1 == 1:
pyb.delay(20)
Key_State_1 = 1
if key2 == 1:
pyb.delay(20)
Key_State_2 = 1
if key1 == 0 and Key_State_1 == 1:
pyb.delay(20)
Key_State_1 = 0
#需要执行的函数
if key2 == 0 and Key_State_2 == 1:
pyb.delay(20)
Key_State_2 = 0
#需要执行的函数
串口(UART)
from machine import UART
uart = UART(1, 115200)
while True:
uart.write("(")
uart.write(str(x1)) #将非字符型变量转变为字符变量 str()
uart.write(",")
uart.write(str(y1))
uart.write(")")
uart.write('\r\n')
寻找矩形,画出外框,获取角点
import sensor, image, time
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQQVGA)
sensor.skip_frames(time=2000)
while(True):
clock.tick()
img = sensor.snapshot().lens_corr(strength = 1.8, zoom = 1.0) #去畸变函数
# 使用find_rects()方法寻找图像中的矩形
rects = img.find_rects(threshold = 10000)
# 初始化变量来存储最大矩形的信息
max_area = 0
max_rect = None
# 遍历所有找到的矩形,找出面积最大的矩形
for rect in rects:
# 计算当前矩形的面积
area = rect.w() * rect.h()
# 如果当前矩形的面积大于之前记录的最大面积,则更新最大矩形和最大面积
if area > max_area:
max_area = area
max_rect = rect
# 如果找到了最大的矩形,则绘制它的边框
if max_rect:
corners = max_rect.corners() # 获取最大矩形的四个角点
# 绘制最大矩形的四条边
for i in range(len(corners)):
start_point = corners[i]
end_point = corners[(i+1) % 4]
img.draw_line(start_point[0], start_point[1], end_point[0], end_point[1], color = 255)
print(corners)