首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

怎么提取十字图像中的交叉点位置

2012-05-20 
如何提取十字图像中的交叉点位置?黑白bmp文件中有一个大的十字,如下所示,怎样快速找到十字中心,十字不一定

如何提取十字图像中的交叉点位置?
黑白bmp文件中有一个大的十字,如下所示,怎样快速找到十字中心,
  十字不一定横平竖直,谢谢!






--------------------------------
| * |
| * |
| *****************************|
| * |
| * |
--------------------------------

[解决办法]
帮up
[解决办法]
恐怕是要做积分变换喽,如果这个大十字没有详细定义的话。

我的意思是模式识别,提取图像特征。
[解决办法]
找线条先吧.
[解决办法]
你的线检测出来了没
[解决办法]
有两种方法可以做到:一是检测出十字来,可以采用直线拟合方法,找到两条线后求交点;一个就是通过区域分割,把两天线区域分割出来,在找到重合的部分,就是交点。
[解决办法]
这是个很经典的问题,方法比较多:可以采用hough算法检测出所有直线,然后给这些直线附加上明显的条件,一般即可得到交叉的点;
也可以用模板匹配的方法得到中心交点。

建议采用opencv图像库进行编码,可以节省较多外围的时间。
[解决办法]
用OpenCV可以检测出图像中的任意直线 而且这些直线都通过数组将起点和终点坐标给出来
 楼主的十字检测 可以使用Hough检测出直线(肯定会有很多条) 然后根据直线的平行和相交关系应该能找到交点。
[解决办法]
楼上几位,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的大叉。反变换定位为大叉中心。


这个方法可以囊括所有的模板匹配方法。并且在速度上改进很多很多。

热点排行