赞
踩
OpenMV入门,从入门到入坟>_<
此文章大部分内容取自OpenMV官方中文参考文档
img = sensor.snapshot()
拍摄一张照片,snapshot()函数返回一个image对象
image.find_blobs(thresholds[,roi=Auto,x_stride=2,y_stride=1,invert=False,area_threshold=10,pixels_threshold=10,merge=False,margin=0,threshold_cb=None,merge_cb=None])
查找图像中所有色块,并返回一个包括每个色块的色块对象的列表
官方说明:
合并色块使颜色代码追踪得以实现。每个色块对象有一个代码值 code ,该值为一个位向量。 例如:若您在 image.find_blobs 中输入两个颜色阈值,则第一个阈值代码为1,第二个代码为2(第三个代码为4,第四个代码为8,以此类推)。 合并色块对所有的code使用逻辑或运算,以便您知道产生它们的颜色。这使得您可以追踪两个颜色,若您用两种颜色得到一个色块对象,则可能是一种颜色代码。
若您使用严格的颜色范围,无法完全追踪目标对象的所有像素,您可能需要合并色块。
最后,若您想要合并色块,但不想两种不同阈值颜色的色块被合并,只需分别两次调用 image.find_blobs ,不同阈值色块就不会被合并。
threshold_cb 可设置为用以调用阈值筛选后的每个色块的函数,以便将其从将要合并的色块列表中过滤出来。 回调函数将收到一个参数:要被筛选的色块对象。然后回调函数需返回True以保留色块或返回False以过滤色块。
merge_cb 可设置为用以调用两个即将合并的色块的函数,以禁止或准许合并。回调函数将收到两个参数—两个将被合并的色块对象。 回调函数须返回True以合并色块,或返回False以防止色块合并。
image.find_lines(roi,x_stride=2,y_stride=1,threshold=1000,theta_margin=25,rho_margin=25)
image.find_line_segments(roi, merge_distance=0,max_theta_difference=15)
image.find_circles(roi,x_stride=2,y_stride=1,threshold=2000,x_margin=10,y_margin=10,r_margin=10,r_min=2,r_max,r_step=2)
image.find_rects(roi=Auto, threshold=10000)
返回一个 image.rect 对象的列表;roi和threshold同上。
image.draw_rectangle(x, y, w, h,color,thickness=1,fill=False)
画圆同理可得
image.draw_circle(x, y,radius,color,thickness=1,fill=False)
可以单独传递x,y,(这里的x,y指圆心的坐标)半径或作为元组(x,y,radius)传递
返回一个矩形元组(x,y,w,h),用于如色块边界框的 image.draw_rectangle 等 其他的 image 方法;
同理可得:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。