OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 5920|回复: 11

求助,大佬们,新人求助

[复制链接]
发表于 2018-11-5 18:51:35 | 显示全部楼层 |阅读模式
在二值图像中,如原图所示,有两条长短不一的平行线,知道其大致的距离(像素),通过距离阈值进行判断,对于左边的直线每一行的像素点在距离某一范围像素内的点在右边的直线就保留这个像素点,如果没有就剔除该像素点,得到最终想要的结果图,这样的循环请问大佬怎么写?

结果图

结果图

原图

原图
回复

使用道具 举报

发表于 2018-11-5 22:31:27 | 显示全部楼层
我这里有一个非常好的参考
<Finding distance between two curves>
https://www.cnblogs.com/jsxyhelu/p/6443654.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 09:36:16 | 显示全部楼层
jsxyheu2014 发表于 2018-11-5 22:31
我这里有一个非常好的参考

https://www.cnblogs.com/jsxyhelu/p/6443654.html

老师,我看了一下,问题好像相关性不大。我的问题是我现在的原图是二值图像,且上有两条直线,两条直线平行且长短不一,每一行相距的像素值页大概知道,假设误差不超过10个像素,我需要通过在左边这条直线上的某个像素点,在同一行通过一定像素距离范围,去寻找是否存在像素点落在右边的直线上,如果存在那就保留左边这个像素点,如果不存在就剔除为0
回复 支持 反对

使用道具 举报

发表于 2018-11-8 09:44:45 | 显示全部楼层
你的问题不知道我理解对了没有,是根据左边线段的每个点的位置,寻找右边同行是否有点且间距需满足要求?可以用opencv中的houghline算法,输出的结果就是每一个点的坐标,可以在同一个y坐标下判断x坐标,这样就容易了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 09:59:47 | 显示全部楼层
泽文继续努力 发表于 2018-11-8 09:44
你的问题不知道我理解对了没有,是根据左边线段的每个点的位置,寻找右边同行是否有点且间距需满足要求?可 ...

嗯嗯 ,就是这样,但是新手不太会opencv,求大佬帮助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-8 10:01:46 | 显示全部楼层
泽文继续努力 发表于 2018-11-8 09:44
你的问题不知道我理解对了没有,是根据左边线段的每个点的位置,寻找右边同行是否有点且间距需满足要求?可 ...

霍夫变换不是检测直线吗?能达到这样的效果吗?我去看看先
回复 支持 反对

使用道具 举报

发表于 2018-11-9 20:12:25 | 显示全部楼层
仔细阅读了一下你的题目,感觉很拗口,不容易理解,能否多画几张图给说明一下,是想实现什么效果?
回复 支持 反对

使用道具 举报

发表于 2018-11-11 08:15:43 | 显示全部楼层
还有,或用我给的链接中的函数,应该是能够解决你这里的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-12 09:42:06 | 显示全部楼层
jsxyheu2014 发表于 2018-11-9 20:12
仔细阅读了一下你的题目,感觉很拗口,不容易理解,能否多画几张图给说明一下,是想实现什么效果? ...

是根据左边线段的每个点的位置,寻找右边同行是否有点且间距需满足要求?,如果右边有点且满足这个间距就保留这个左边点,如果没有就将左边点置为零。
回复 支持 反对

使用道具 举报

发表于 2018-11-12 20:54:41 | 显示全部楼层
我之前提供的资料可以解决你这个问题,你具体跑一下代码,加深对
distanceTransform 的理解。
我给出的程序能够得到所有的距离,你只是筛选一下就可以。
回复 支持 反对

使用道具 举报

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

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-26 23:58 , Processed in 0.010272 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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