解-凡
v1
2018.04.03
www.myopenmv.com
www.myfange.com
OpenMV巡
OpenMV
OpenMV教
明&功
因
合OpenMV进
定
(左
转or右
转)
T字
算
up 上
middle 中
down 下
left 左
right 右
来5个ROI区
版
本
号
更
新
时
间
作
者
凡
哥
@
杭
州
云
江
科
技
学
⽹
站
云
江
学
院
⽹
站
线
模
块
原
理
讲
哥
带
你
玩
转
版
本
信
息
版
本
说
能
描
述
为
之
前
⻜
控
结
⾏
的
巡
线
代
码
⽐
较
杂
乱
,
另
外
也
由
于
新
版
固
件
的
⼀
些
改
动
,
导
致
原
有
的
代
码
不
能
正
常
运
⾏
,
所
以
凡
哥
重
构
了
这
部
分
的
代
码
。
在
原
有
的
代
码
的
功
能
基
础
上
进
⾏
了
拓
展
。
完
整
功
能
包
括
:
直
线
巡
线
直
⻆
转
弯
判
形
路
⼝
判
定
⼗
字
形
路
⼝
判
定
演
⽰
效
果
,
可
以
查
看
演
⽰
视
频
。
原
理
介
绍
法
的
主
要
核
⼼
在
于
,
讲
整
个
画
⾯
分
割
出
域
⽅
横
向
采
样
间
横
向
采
样
⽅
横
向
采
样
侧
垂
直
采
样
侧
垂
直
采
样
如
下
图
所
⽰
通
断5个
过
判
图
⽚
的
组
合
关
系
给
出
路
⼝
类
型
的
判
断
。
判
断
规
则
如
图
所
⽰
:
中 T 字
据 is_turn_right 跟 is_turn_left 确
定 T 字
其
类
型
的
路
⼝
是
没
有
⽅
向
的
,
要
根
形
路
⼝
的
朝
向
。
路
⼝
类
型
之
间
是
有
优
先
级
的
,
如
下
图
所
⽰
。
cx,cy 代
为 T 字
数 cx 跟 cy 才
点, ⾊
⼗
字
形
或
T
字
形
当
路
⼝
类
型
形
或
者
⼗
字
形
的
时
候
,
参
是
有
意
义
的
。
T
字
形
跟
⼗
字
形
可
以
⽤
作
四
轴
悬
停
的
参
考
块
的
⽅
法
,
近
似
求
得
轨
道
与
轨
道
交
叉
圆
的
圆
⼼
(
因
为
圆
形
识
别
⽐
较
耗
时
且
不
稳
定
)
,
如
果
⻆
度
旋
转
过
⼤
,
则
该
算
法
不
成
⽴
。
表
交
叉
点
的
中
⼼
坐
标
。
者T字
if is_cross or is_t:
# 只
cnt = 0
for roi_direct in ['up', 'down']:
if reslut[roi_direct]['blob_flag']:
cnt += 1
cx += reslut[roi_direct]['cx']
if cnt == 0:
cx = last_cx
else:
cx /= cnt
cnt = 0
for roi_direct in ['left', 'right']:
if reslut[roi_direct]['blob_flag']:
cnt += 1
cy += reslut[roi_direct]['cy']
if cnt == 0:
cy = last_cy
else:
计
算
⽅
法
如
下
:
在
出
现
⼗
字
形
或
形
才
计
算
圆
⼼
坐
标
cy /= cnt
左
右
转
向
直
线
的 x 坐
为 cmean_x 的
数 cmean_x 仅
# cx_mean ⽤
# ⽤
cx_mean = 0
for roi_direct in ['up', 'down', 'middle']:
if reslut[roi_direct]['blob_flag']:
cx_mean += reslut[roi_direct]['cx']
else:
cx_mean += IMG_WIDTH / 2
cx_mean /= 3
图
中
⿊
⾊
圆
⼼
为
画
⾯
中
⼼
,
⽩
⾊
圆
⼼
标
值
参
在
当
前
视
野
为
直
线
时
才
有
意
义
。
计
算
⽅
法
如
下
调
参
调
试
模
式
于
确
定
视
⻆
中
的
轨
道
中
⼼
于
表
⽰
左
右
偏
移
量
启debug模
# 是
# 如
is_debug = True
是False就
不print, 不
# 当
LED(4).on()
# 直
LINE_COLOR_THRESHOLD = [(0, 120)]
# 如
# LINE_COLOR_THRESHOLD = [(128, 255)]
ROI
ROI的
# 取
ROIS = {
'down': (0, 55, 64, 8), # 横
'middle': (0, 28, 64, 8), # 横
'up': (0, 0, 64, 8), # 横
'left': (0, 0, 8, 64), # 纵
'right': (56, 0, 8, 64) # 纵
}
间 2
样-中
⽅ 3
样-上
样-下
⽅ 1
样-左
侧 4
样-右
侧 5
补
光
如
果
不
需
要
补
光
,
可
以
注
释
掉
。
灰
度
图
颜
⾊
阈
值
这
取
决
于
当
前
现
场
的
颜
⾊
强
度
与
线
的
颜
⾊
。
宽
度
与
位
置
也
可
以
根
据
需
求
调
节
。
⾊
块
尺
⼨
阈
值
尺
⼨
太
⼩
容
易
引
进
噪
声
,
尺
⼨
过
⼤
,
容
易
选
取
到
整
条
取
样
⼝
,
尤
其
是
出
现
交
叉
线
的
时
候
。
否
开
式
果
进
⾏
可
视
化
绘
制
,
可
以
提
⾼
帧
率
光
线
弱
的
时
候
,
⽤
于
补
光
线
灰
度
图
颜
⾊
阈
值
果
直
线
是
⽩
⾊
的
,
阈
值
修
改
为
:
样
窗
⼝
向
取
向
取
向
取
向
取
向
取