目标识别基础 OpenMV 图片对象( 二 )


这个目前没搞明白先不解释
rect
以 (x,y,w,h) 形式返回色块的边界框信息
色块边界框的 x 像素坐标
色块边界框的 y 像素坐标
【目标识别基础OpenMV 图片对象】色块边界框宽的像素个数
色块边界框高的像素个数
色块里包含的像素点个数
cx
色块中心的 x 像素坐标(整型)
cxf
色块中心的 x 像素坐标(浮点型)
cy
色块中心的 y 像素坐标(整型)
cyf
色块中心的 y 像素坐标(浮点型)
长条形色块的旋转角度 , 0~PI 弧度 , 对圆形色块无用
以“度”为单位返回长条形色块的旋转角度
同  , 加了 rad 更易识别单位
code
merge=True 时才有效 , 这个目前没搞明白先不解释
count
merge=True 时才有效 , 这个目前没搞明白先不解释
色块周长上的像素个数
色块的圆度 , 0~1 之间 , 圆是 1
色块的线条度 , 0~1 之间 , 线是 1
area
色块的面积 , 即:w*h
色块边框区域内像素点的数量 , 0~1之间 , 较低说明对象锁定不太好
同  , 就是换个名字而已
类似  , 区别是使用色块周长来衡量对象的密度 , 也是 0~1 之间
类似  , 区别是使用最小面积旋转的矩形相对于边界矩形来测量密度 , 也是 0~1 之间
色块的方度 , 0~1 之间 , 正方形是 1
色块中所有列的 x 轴直方图 , Bin 值在 0 和 1 之间缩放
色块中所有行的 y 轴直方图 , Bin 值在 0 和 1 之间缩放
色块主轴像素点的元组 , 贯穿最小面积矩形最长边 , 可以用 image.() 绘制
色块次轴像素点的元组 , 贯穿最小面积矩形最短边 , 可以用 image.() 绘制
包围色块最小面积矩形的圆的像素点元组 , 可以用 image.() 绘制
包围色块最小面积矩形的椭圆的像素点元组 , 可以用 image.() 绘制
三、代码及现象
图上的代码不长 , 一张图片看得全就不把代码单摘出来了 , 相信愿意实践的读者可以照着打出来 。这里点一处考察能力的地方:如果去掉代码里 if len(blobs) > 0: 这个条件 , 则运行会在某个时候报错 。问题有三个:
1、会在什么时候报错?
2、报什么错 , 为什么报这个错?
3、可否用 if blobs: 代替 if len(blobs) > 0:?
如果答不上来或答不全 , 请到 Sugar 写的入门系列推文里巩固一下基础 。
PS
颜色阀值的提取使用的是IDE 的一个工具 , 如下图:
用法不细说了 , 网上搜一搜或者用鼠标在弹出窗口上拉一拉就知道 。