开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7401|回复: 3
收起左侧

[技术专题] Opencv学习笔记 判断两条直线平行,并计算平行距离

[复制链接]
结帖率:89% (79/89)
发表于 2021-8-29 18:35:15 | 显示全部楼层 |阅读模式   浙江省宁波市
本帖最后由 z13228604287 于 2021-8-29 18:41 编辑

QQ图片20210829183200.png QQ图片20210829183413.png
QQ图片20210829183453.png
  
窗口程序集名保 留  保 留备 注
OPENCV  4.5.3
变量名类 型数组备 注
线段1双精度向量4  
线段2双精度向量4  
颜色标量  
距离颜色标量  
延长线颜色标量  
area双精度向量6  

子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
图像多维矩阵 
标量 
画板多维矩阵 
按键整数型 
' 初始化
area.赋值 (-1, 0, 0, 0, 0, 0)
线段1.赋值 (200, 200, 600, 200)
线段2.赋值 (200, 400, 600, 400)  ' 平行的两条线
值.赋值 (255, 255, 255, 0)
颜色.赋值 (0, 0, 255, 0)
距离颜色.赋值 (0, 255, 0, 0)
延长线颜色.赋值 (255, 0, 0, 0)
' 开始执行
视觉_创建窗口 (“小白鼠”, #窗口_自动尺寸 )
图像.构造 (600, 800, #八位无符号整数_三通道,)  ' 创建一个纯白色背景
视觉_设置鼠标事件 (“小白鼠”, &鼠标事件, 0)  ' 调用鼠标回调函数
判断循环首 ()
图像.克隆 (画板.指针)
画图 (画板, 线段1, 线段2)
视觉_显示图像 (“小白鼠”, 画板.指针)
按键 = 视觉_等待按键 (3)
判断 (按键 = 49)  ' l1,l2与x轴平行
线段1.赋值 (200, 200, 600, 200)
线段2.赋值 (200, 400, 600, 400)
判断 (按键 = 50)  ' l1,l2与x轴垂直
线段1.赋值 (300, 200, 300, 400)
线段2.赋值 (500, 200, 500, 400)
判断 (按键 = 51)  ' l1,l2与x轴右倾斜
线段1.赋值 (200, 450, 600, 150)
线段2.赋值 (200, 500, 600, 200)
判断 (按键 = 52)  ' l1,l2与x轴左倾斜
线段1.赋值 (100, 100, 500, 500)
线段2.赋值 (100, 150, 500, 550)
如果真 (按键 > 0 按键 < 49 按键 > 52)
跳出循环 ()


判断循环尾 ()
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
鼠标事件 鼠标回调函数
参数名类 型参考可空数组备 注
event整数型
x整数型
y整数型
flags整数型
变量名类 型静态数组备 注
p1二维坐标数据结构d 
p2二维坐标数据结构d 
w双精度小数型 
h双精度小数型 
判断 (event = #事件_按下左键 )
p1.赋值 (x, y)
定义区域 (线段1, 线段2, p1, area)  ' 确定鼠标所要移动的区域
判断 (event = #事件_鼠标移动 )
如果真 (area.取元素1 () > -1)
p2.赋值 (x, y)
w = p2.横坐标 - p1.横坐标
h = p2.纵坐标 - p1.纵坐标
移动线 (线段1, 线段2, area, w, h)  ' 根据鼠标移动相应的修改直线的起点和终点

如果真 (event = #事件_释放左键 )
p1.赋值 (0, 0)
p2.赋值 (0, 0)
area.赋值 (-1, 0, 0, 0, 0, 0)


子程序名返回值类型公开备 注
移动线 确定鼠标左键点击在两条直线的那个点上
参数名类 型参考可空数组备 注
l1双精度向量4
l2双精度向量4
area1双精度向量6
w双精度小数型
h双精度小数型
判断 (area1.取元素1 () = 0)
l1.赋值 (area1.取元素2 () + w, area1.取元素3 () + h, l1.取元素3 (), l1.取元素4 ())
判断 (area1.取元素1 () = 1)
l1.赋值 (area1.取元素2 () + w, area1.取元素3 () + h, area1.取元素4 () + w, area1.取元素5 () + h)
判断 (area1.取元素1 () = 2)
l1.赋值 (l1.取元素1 (), l1.取元素2 (), area1.取元素2 () + w, area1.取元素3 () + h)
判断 (area1.取元素1 () = 3)
l2.赋值 (area1.取元素2 () + w, area1.取元素3 () + h, l2.取元素3 (), l2.取元素4 ())
判断 (area1.取元素1 () = 4)
l2.赋值 (area1.取元素2 () + w, area1.取元素3 () + h, area1.取元素4 () + w, area1.取元素5 () + h)
如果真 (area1.取元素1 () = 5)
l2.赋值 (l2.取元素1 (), l2.取元素2 (), area1.取元素2 () + w, area1.取元素3 () + h)


子程序名返回值类型公开备 注
定义区域 确定鼠标左键点击在两条直线的那个点上
参数名类 型参考可空数组备 注
l1双精度向量4
l2双精度向量4
p二维坐标数据结构d
区域双精度向量6
变量名类 型静态数组备 注
w双精度小数型 
h双精度小数型 
x1双精度小数型 
y1双精度小数型 
x2双精度小数型 
y2双精度小数型 
x3双精度小数型 
y3双精度小数型 
x4双精度小数型 
y4双精度小数型 
r0矩形数据结构d 
p1二维坐标数据结构d 
r1矩形数据结构d 
r2矩形数据结构d 
r3矩形数据结构d 
p2二维坐标数据结构d 
r4矩形数据结构d 
r5矩形数据结构d 
w = 20
h = 20
x1 = l1.取元素1 ()
y1 = l1.取元素2 ()
x2 = l1.取元素3 ()
y2 = l1.取元素4 ()
x3 = l2.取元素1 ()
y3 = l2.取元素2 ()
x4 = l2.取元素3 ()
y4 = l2.取元素4 ()
r0.赋值 (x1 - w, y1 - h, 2 × w, 2 × h)  ' l1的起点点
p1.赋值 ( (x2 + x1) ÷ 2, (y1 + y2) ÷ 2)  ' l1的中间点
r1.赋值 (p1.横坐标 - w, p1.纵坐标 - h, 2 × w, 2 × h)
r2.赋值 (x2 - w, y2 - h, 2 × w, 2 × h)  ' l1的终点
r3.赋值 (x3 - w, y3 - h, 2 × w, 2 × h)  ' l2的起点
p2.赋值 ( (x3 + x4) ÷ 2, (y3 + y4) ÷ 2)  ' l2的中间点
r4.赋值 (p2.横坐标 - w, p2.纵坐标 - h, 2 × w, 2 × h)
r5.赋值 (x4 - w, y4 - h, 2 × w, 2 × h)  ' l2的终点
判断 (r0.包含 (p))  ' 判断点是否在矩形中
区域.赋值 (0, x1, y1, 0, 0, 0)
判断 (r1.包含 (p))
区域.赋值 (1, x1, y1, x2, y2, 0)
判断 (r2.包含 (p))
区域.赋值 (2, x2, y2, 0, 0, 0)
判断 (r3.包含 (p))
区域.赋值 (3, x3, y3, 0, 0, 0)
判断 (r4.包含 (p))
区域.赋值 (4, x3, y3, x4, y4, 0)
如果真 (r5.包含 (p))
区域.赋值 (5, x4, y4, 0, 0, 0)


子程序名返回值类型公开备 注
画图  
参数名类 型参考可空数组备 注
图像多维矩阵
局线段1双精度向量4
局线段2双精度向量4
变量名类 型静态数组备 注
距离双精度小数型 
文本位置二维坐标数据结构i 
端点1二维坐标数据结构d 
端点2二维坐标数据结构d 
中心二维坐标数据结构d 
垂足点二维坐标数据结构d 
距离 = 视觉_平行线 (局线段1.取元素1 (), 局线段1.取元素2 (), 局线段1.取元素3 (), 局线段1.取元素4 (), 局线段2.取元素1 (), 局线段2.取元素2 (), 局线段2.取元素3 (), 局线段2.取元素4 ())
判断 (距离 > 0)  ' 重合
文本位置.赋值 (10, 25)
视觉_放置文本i (图像.指针, “yes spacing =”到文本 (距离), 文本位置, #字体_衬线_复杂, 0.5, 颜色, 1, 8, )
视觉_延伸 (图像.指针, 局线段1.取元素1 (), 局线段1.取元素2 (), 局线段1.取元素3 (), 局线段1.取元素4 (), 端点1, 端点2)
视觉_虚线d (图像.指针, 端点1, 端点2, 15, 延长线颜色, 1, 8, 0)
视觉_延伸 (图像.指针, 局线段2.取元素1 (), 局线段2.取元素2 (), 局线段2.取元素3 (), 局线段2.取元素4 (), 端点1, 端点2)
视觉_虚线d (图像.指针, 端点1, 端点2, 15, 延长线颜色, 1, 8, 0)
视觉_两点中心d (局线段1.取元素1 (), 局线段1.取元素2 (), 局线段1.取元素3 (), 局线段1.取元素4 (), 中心)
视觉_垂足 (中心.横坐标, 中心.纵坐标, 局线段2.取元素1 (), 局线段2.取元素2 (), 局线段2.取元素3 (), 局线段2.取元素4 (), 垂足点)
视觉_虚线d (图像.指针, 中心, 垂足点, 15, 距离颜色, 1, 8, 0)
视觉_放置文本i (图像.指针, “NO”, 文本位置, #字体_衬线_复杂, 0.5, 颜色, 1, 8, )
视觉_线Zd (图像.指针, 局线段1.取元素1 (), 局线段1.取元素2 (), 局线段1.取元素3 (), 局线段1.取元素4 (), 颜色, 1, 8, 0)
视觉_线Zd (图像.指针, 局线段2.取元素1 (), 局线段2.取元素2 (), 局线段2.取元素3 (), 局线段2.取元素4 (), 颜色, 1, 8, 0)


i支持库列表   支持库注释   
cv(未知支持库)


链接:https://pan.baidu.com/s/1VSYkILerRQsoDiIhl-6eTQ
提取码:4ypk
复制这段内容后打开百度网盘手机App,操作更方便哦





签到天数: 3 天

发表于 2023-9-16 11:55:32 | 显示全部楼层   广东省深圳市
好东西好东西
回复 支持 反对

使用道具 举报

发表于 2022-1-4 16:36:48 | 显示全部楼层   四川省乐山市
回复 支持 反对

使用道具 举报

结帖率:100% (23/23)

签到天数: 21 天

发表于 2021-8-29 19:43:07 | 显示全部楼层   四川省成都市
最新的支持库是否能发下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表