社区
机器视觉
帖子详情
如何提取十字图像中的交叉点位置?
canican
2009-03-04 11:46:32
黑白bmp文件中有一个大的十字,如下所示,怎样快速找到十字中心,
十字不一定横平竖直,谢谢!
--------------------------------
| * |
| * |
| *****************************|
| * |
| * |
--------------------------------
...全文
2585
22
打赏
收藏
如何提取十字图像中的交叉点位置?
黑白bmp文件中有一个大的十字,如下所示,怎样快速找到十字中心, 十字不一定横平竖直,谢谢! -------------------------------- | * | | * | | *****************************| | * | | * | --------------------------------
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qinglingyue
2012-05-19
打赏
举报
回复
楼主现在解决这个问题了么?可以说说解决方法么?还有如果一张图片上有很多个十字丝该怎么来分别找出十字丝的交叉点呢?谢谢
tab202109
2010-05-30
打赏
举报
回复
用PCA的方法可以试试,本人最近也在做这个
youwill
2009-03-24
打赏
举报
回复
Nod,NewVC1978说的不错。其实频域也是空域变换过去的,空域也有很多加速的方法, 最小二乘法也是最小误差最优(没有躁点时)
crond123
2009-03-23
打赏
举报
回复
看到高手了
NewVC1978
2009-03-23
打赏
举报
回复
频域的精匹配不看好,在精匹配中最小二乘法也比eblis88所说的种种方法好
做学术是可以的,想成为经典是有难度的。
fire_woods
2009-03-09
打赏
举报
回复
eblis88 成功了吗?
我也很想知道.
canican
2009-03-09
打赏
举报
回复
哇,厉害厉害,预祝eblis88早日成功,
eblis88
2009-03-08
打赏
举报
回复
那,ls可以认为我是在搞频域吧。HT,RHT只能对直线和圆,太狭隘了。
针对的东西不同,呵呵。
我的目的是改进所有的模板匹配方法,包括hough transform,囊括合一。顺便把圆检测,任意形状目标检测,旋转目标检测等等都解决掉。
胃口有些大,呵呵,但有很大可能完成
cadinfo
2009-03-08
打赏
举报
回复
解决问题的思路现在出现两个观点,
1.此类问题最好在空域解决
2.此类问题可以采用频域探索
个人认为对于匹配乃至更高精度的亚像元匹配,用空域似乎比较好;
当然我在文献中也见到过有用Forier-Meillin算法进行曲线匹配的,但我本人没有实现,所以定位的精度我不能妄加揣测。
而对于空域方法,我个人比较擅长,无论是Hough,或者eblis88提到的RHT(我采用RANSAC实现),我都自己实现过,所以我更倾向于空域。
楼主的问题中看不出他需要实时的识别,而对于这样普通的任务,空域也很容易做到25帧/秒。
eblis88
2009-03-08
打赏
举报
回复
楼上几位,hough的速度也不快的.
除非是RHT random hough transform。能改进点速度。
不然,用普通的hough和遍历,效率差不多
2楼的答案其实很接近了。这个可以用积分变换来解决。思路如下
首先,寻找两组基。a和b。a,b正交。
理论上,最佳的积分变换中,积分核应该有周期性,那么就能很好的解决运算效率的问题。比如dft的积分核的周期性,造就了fft。
对于lz这种形式,考虑正变换用的积分核为十字,有两个参数,一个是半径,就是十字的长轴,一个是旋转角度。
由于旋转角度是周期的,所以,积分变换必然能有周期性,可以简化运算步骤。
那么,lz的图像,在经过正变换后,是一个关于半径和角度的函数。我们要做的,就是对变换后的函数的角度求导,找到极值点。
得到对应的角度后,加上相应半径的附加条件,反变换,就能得到坐标了。反变换的核函数可以从正变换的核函数推导到。
理论有些抽象。。。。这个可以叫基于小波分析的模板匹配算法,引入了小波分析的概念。我最近在写这个文章,或者lz可以等我的全文。
I是图像,M是核函数。核函数是一个模板,模板一个参数n,n是大小。另外一个参数theta,角度,不用的角度可以计算出不同的模板系数。
那么首先要做的是进行变换。G = I*M *表示卷积。
这个卷积很慢,所以要推导他的简化形势。参考wavelet transfor 和fast wavelet transform。 有详尽如何推倒快速变换的解决方法。
然后得到的G(theta,n)。 我们要做的就是找到最佳的theta。这个theta会告诉我们,图像中有一个大叉,这个大叉有个倾斜角度theta.
那么,就可以用G对theta求导。可以用很多方法找到这个theta的全局最优解。我文章中用的是tabu搜索法,满快,而且得到全局最优解的迭代次数很少。
然后得到对恰当的theta和n,反变换就好。反变换的积分核是从正变换推来的。推导过程参考wavelet transform
反变换后的就是只有旋转角度为theta的,长度为n的大叉。反变换定位为大叉中心。
这个方法可以囊括所有的模板匹配方法。并且在速度上改进很多很多。
cadinfo
2009-03-08
打赏
举报
回复
希望能看到你的实现,空域的识别与匹配已经很多了。
频域的至少我见得不多。
eblis88
2009-03-08
打赏
举报
回复
thanks.最终也不会到爱因斯坦那种程度,高估了我了。。。
定位问题,是傅立叶变换的缺陷,那个时候的加窗傅立叶变换就是用来解决这个问题,但精度还是不行,这是已知的大毛病
小波变换是一个有时频窗的东西,就像是加窗傅立叶变换.虽然理论上还不能达到空域的精度,但好在我处理的是图像。
图像是离散的,所以harr小波这种很粗糙的母小波,也能达到对函数的很好的逼近后
可以取道很小范围内的时频窗。
比如某3*3窗口内的频率变化和整个图像的关系
这样,几乎就能在频域达到和空域一样的效果。
这个时频窗,这个逼近,我喜欢叫他基,就是解决定位问题的关键.
cadinfo
2009-03-08
打赏
举报
回复
楼上思想挺深,就像爱因斯坦当年寻思着统一几大领域的力学问题。
不过就现在的研究水平,你的出发点是具有可行性的,我上面说得Fourier-Meilin就是一种,你可以去跟踪,
我这里强调的是频域方法在定位的精度上存在问题:平移、旋转都讲究精度,你能做出来的精度问题如果能解决的话,
如果速度又快,那简直没话说。
举个简单的例子,单色光源(单色图像)的傅立叶变换是个单点,你怎么样去将这个单点和空间位置进行关联???
当然应用场合不同,也许检测到和定位准是两回事.
祝你能获得研究的成功。
Tinary3v0
2009-03-07
打赏
举报
回复
用OpenCV可以检测出图像中的任意直线 而且这些直线都通过数组将起点和终点坐标给出来
楼主的十字检测 可以使用Hough检测出直线(肯定会有很多条) 然后根据直线的平行和相交关系应该能找到交点。
canican
2009-03-06
打赏
举报
回复
谢谢大家,640×480的图像,随机一个十字
我用很普通的方法实现,图像遍历了两遍,一遍二值、取范围,一遍寻找
得到一个粗糙的十字中心点,
请问有没有更好的方法,最好有代码!!!
cadinfo
2009-03-06
打赏
举报
回复
我最近也在做图像识别,问题比你这个复杂的多。
你的问题应该不难解决的,代码不能给你。
fireseed
2009-03-05
打赏
举报
回复
恐怕是要做积分变换喽,如果这个大十字没有详细定义的话。
我的意思是模式识别,提取图像特征。
linglongyouzhi
2009-03-05
打赏
举报
回复
你的线检测出来了没
fire_woods
2009-03-05
打赏
举报
回复
找线条先吧.
cadinfo
2009-03-05
打赏
举报
回复
这是个很经典的问题,方法比较多:可以采用hough算法检测出所有直线,然后给这些直线附加上明显的条件,一般即可得到交叉的点;
也可以用模板匹配的方法得到中心交点。
建议采用opencv图像库进行编码,可以节省较多外围的时间。
加载更多回复(2)
三维重建 网格
交叉点
的
提取
MATLAB程序
三维重建 网格
交叉点
的
提取
MATLAB程序语言编写的完整程序 可以运行 带图片
十字
架
中
心点坐标识别
十字
架
中
心坐标识别代码,基于QT开发Opencv库坏境搭建下的
图像
识别
FindCross_C#_定位
十字
叉_emgucv_emgucv模板匹配_
运用emgucv
基于openmv的
十字
路口识别
基于openmv的
十字
路口识别
基于传统几何方法的
十字
路口检测
复现导师发我的一篇毕业论文。其实是挺过时的东西了,不过貌似做的人很少,复现出来结果也不错,挺有想法的一篇文章。
机器视觉
4,506
社区成员
15,379
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章