例程讲解-09-edges快速边缘检测
此例程为09-feature-Detection-edges.py
本例程的目标是利用canny算子实现快速边缘检测,使用canny算子的边缘检测是最简单最快速的边缘检测,但是检测的效果没有morph变换的边缘检测效果好。
# Canny边缘检测:
#
# 这个例子展示了Canny边缘检测。
import sensor, image, time
sensor.reset() # 初始化sensor.
sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.RGB565
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种
sensor.set_framesize(sensor.QQVGA) # or sensor.QVGA (or others)
#设置图像像素大小
sensor.skip_frames(30) # 让新的设置生效
sensor.set_gainceiling(8)
clock = time.clock() # 跟踪FPS帧率
while(True):
clock.tick() # 追踪两个snapshots()之间经过的毫秒数.
img = sensor.snapshot() # 拍一张照片并返回图像。
# 使用Canny边缘检测器
img.find_edges(image.EDGE_CANNY, threshold=(50, 80))
#threshold设置阈值
# 更快更简单的边缘检测
#img.find_edges(image.EDGE_SIMPLE, threshold=(100, 255))
print(clock.fps()) # 注意:你的OpenMV摄像头的运行速度只有它的一半
原图:
使用canny算子的边缘检测:
使用04-image-Filters-edge_detection.py morph变换边缘检测: