OPENMV的学习(三)巡线
存储文件
插入sd卡,会将默认储存地址flash改为sd卡。
image.save("/example.jpg")
串口通信
传输面积最大的色块的坐标
优化图像
直方图均衡化是通过拉伸像素强度分布范围来增强图像对比度的一种方法.说得更清楚一些, 以上面的直方图为例, 你可以看到像素主要集中在中间的一些强度值上. 直方图均衡化要做的就是 拉伸 这个范围. 见下面左图: 绿圈圈出了 少有像素分布其上的 强度值. 对其应用均衡化后, 得到了中间图所示的直方图. 均衡化的图像见下面右图.
image.histeq([adaptive=False[, clip_limit=-1[, mask=None]]]) 在图像上运行直方图均衡算法。 直方图均衡化使图像中的对比度和亮度标准化。 如果 adaptive 传递为True,那么将在图像上运行自适应直方图均衡方法,这通常比非自适应直方图限定更好,但运行时间更长 clip_limit 提供了一种限制自适应直方图均衡的对比度的方法。 使用较小的值(例如10)可以生成良好的直方图均衡对比度受限图像。 mask 是另一个用作绘图操作的像素级掩码的图像。掩码应该是一个只有黑色或白色像素的图像,并且应该与你正在绘制的 image 大小相同。 仅掩码中设置的像素被修改。 返回图像对象,以便您可以使用 . 表示法调用另一个方法。 不支持压缩图像和bayer图像。
线性回归(循迹)
while(True):
clock.tick()
img = sensor.snapshot().binary([THRESHOLD]) if BINARY_VISIBLE else sensor.snapshot()
# 返回类似于由find_lines()和find_line_segments()返回的线对象。
# 你有x1(),y1(),x2(),y2(),length(),
# theta()(以度为单位的旋转),rho()和magnitude()。
#
# magnitude() 表示线性回归的工作情况。这对于鲁棒的线性回归意味着不同
# 的东西。一般来说,值越大越好...
line = img.get_regression([(255,255) if BINARY_VISIBLE else THRESHOLD],roi = ROI,robust = True)
img.mean(2)
if (line):
img.draw_line(line.line(), color = 255)#127
#print(line.theta())
th = line.theta()
if th > 90:
th = 180 - th
if th > 7:
print(L,th)
else:
if line.theta() > 7:
print(R,line.theta())
