前言
这个模块是移植于 openmv
, 与 openmv
功能相同,这个模块经常用来进行一些颜色追踪,色块查找之类的(比如识别黑色,传回坐标让小车寻线,或者是识别其他颜色的线)。记得这里要先把sensor配置好,毕竟你要进行图像处理,那么你采集的图像信息也不能偏差很多。这里我们着重于 image 模块中的一个函数 find_blobs 也就是寻找色块的函数。在讲找色块的函数之前,我们先讲下绘制函数。
image绘制相关API
1.绘制图片
image.draw_image(image, x, y[, x_scale=1.0[, y_scale=1.0[, mask=None[, alpha=256]]]])
绘制一个 image ,其左上角从位置x,y开始。 您可以单独传递x,y,也可以传递给元组(x,y)。
x_scale 控制图像在x方向(浮点数)缩放的程度。
y_scale 控制图像在y方向(浮点数)缩放的程度。
2.绘制点
image.draw_keypoints(keypoints[, color[, size=10[, thickness=1[, fill=False]]]])
在图像上画出一个特征点对象的各个点。
- color 是用于灰度或RGB565图像的RGB888元组。默认为白色。但是,您也可以传递灰度图像的基础像素值(0-255)或RGB565图像的字节反转RGB565值。
- size 控制特征点的大小。
- thickness 控制线的粗细像素。
- 将 fill 设置为True以填充特征点。
返回图像对象,以便您可以使用 . 表示法调用另一个方法。
3.画线段
img.draw_line(20, 20, 100, 20, color = (255, 0, 0), thickness = 2)
4.画矩形
img.draw_rectangle(150, 20, 100, 30, color = (0, 255, 0),thickness = 2, fill = False)
5.画圆
img.draw_circle(60, 120, 30, color = (0, 0, 255), thickness = 2,
fill = False)
6.画箭头
img.draw_arrow(150, 120, 250, 120, color = (255, 255, 255), size =
20, thickness = 2)
7.画十字交叉。
img.draw_cross(60, 200, color = (255, 255, 255), size = 20,
thickness = 2)
8.写字符。
img.draw_string(150, 200, "Hello 01Studio!", color = (255, 255,
255), scale = 2,mono_space = False)
然后贴一个使用示例,方便理解。文章来源:https://www.toymoban.com/news/detail-580767.html
示例:文章来源地址https://www.toymoban.com/news/detail-580767.html
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.
函数 find_blobs
image.find_blobs(thresholds[,
invert=False[,
roi[,
x_stride=2[,
y_stride=1[,
area_threshold=10[,
pixels_threshold=10[,
mer
到了这里,关于k210学习篇(九) image图像处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!