Find Circles - 圆形检测#
# 这个例程展示如何进行圆形检测,
# 关于圆形检测,可以参考 https://en.wikipedia.org/wiki/Circle_Hough_Transform
#
# 请注意,find_circles() 这个方法只会检测在图像中完整的圆形
import sensor, image, time
sensor.reset() # 复位并初始化摄像头
sensor.set_pixformat(sensor.RGB565) # 设置摄像头输出格式为 RGB565(也可以是GRAYSCALE),GRAYSCALE运行速度更快
sensor.set_framesize(sensor.QQVGA) # 设置摄像头输出大小为 QQVGA (160x120)
sensor.skip_frames(time = 2000) # 跳过2000帧
clock = time.clock() # 创建一个clock对象,用来计算帧率
while(True):
clock.tick() # 更新计算帧率的clock
# 拍照,获取一张图像,并进行矫正
img = sensor.snapshot().lens_corr(1.8)
# 进行圆形检测,并绘制出圆形区域
for c in img.find_circles(threshold = 2000, x_margin = 10, y_margin = 10, r_margin = 10,
r_min = 2, r_max = 100, r_step = 2):
img.draw_circle(c.x(), c.y(), c.r(), color = (255, 0, 0))
print(c)
print("FPS %f" % clock.fps()) # 打印帧率
具体接口定义请参考 find_circles