系统迁移中,暂时无法访问,所有数据会迁移到新的网站。
OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修。
发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
每一个新的提问,单独发一个新帖子
帖子需要目的,你要做什么?
如果涉及代码,需要报错提示与全部代码文本,请注意不要贴代码图片
必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
边缘检测曲线坐标问题
-
边缘检测可以用线段提取得到直线线段的坐标,但针对曲线(弧形)要怎么获得线段的坐标呢?
困惑了很久请指导一下谢谢
-
OpenMV 没有检测弧线的功能。
-
-
此回复已被删除!
-
@yuan 您好,就针对上传的两幅图像,第一张是原图,第二张是我处理后的图。我使用了img.binary()进行图像分割以及一系列的图像处理。我想知道如何能将图中的曲线回归成一条直线,控制小车进行寻线.
-
先调整一下img.binary的阈值,使只有曲线道路变成白色。然后利用腐蚀函数,将道路腐蚀变细。然后调用线性回归函数。
腐蚀: http://book.openmv.cc/example/04-Image-Filters/erode-and-dilate.html
-
@yuan 请问腐蚀函数的threshold应该怎么设置呢?这个看了教程不太明白
“threshold用来设置去除相邻点的个数, threshold数值越大,被侵蚀掉的边缘点越多,边缘旁边白色杂点少;数值越小,被侵蚀掉的边缘点越少,边缘旁边的白色杂点越多。”这个只能用来平滑边缘,如何做到使得曲线变小呢?
-
@yuan
这样子输出都是“N/A”import sensor, image, time sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) clock = time.clock() Block =(63, 87, -7, 1, -8, -1) def find_max(blobs): max_size=0 for blob in blobs: if blob.pixels() > max_size: max_blob=blob max_size = blob.pixels() return max_blob while(True): clock.tick() img = image.Image("/RGB5.bmp", copy_to_fb=True) img.binary([Block]) img.erode(1,threshold=8) line = img.get_regression([Block],x_stride=1, y_stride=1, invert=False) if (line): img.draw_line(line.line(), color = 127) print("FPS %f, mag = %s" % (clock.fps(), str(line.magnitude()) if (line) else "N/A"))
-
我没有你的rgb5.bmp实在是复现不出来。建议先调试好img.binary([Block])
和img.erode(1,threshold=8)这两个函数,看一下图像是否变成了一条曲线,再进行后面的线性回归。