一种从星图中提取星像的方法

文档序号:6377062阅读:413来源:国知局
专利名称:一种从星图中提取星像的方法
技术领域
本发明属于天文导航技术邻域,涉及一种从星图中提取星像的方法。
背景技术
准确的姿态信息为航天器的顺利飞行提供重要保障,星敏感器是目前精度最高的一种姿态测量仪器,工作过程主要由星图获取、星像提取、星图识别、姿态估算等步骤组成。星像提取是通过处理星图得到星像亮度和位置等数据的过程,是顺利进行星图识别的前提。随着采用的图像传感器阵列增大,星像提取处理时间增加,时效问题突显。研究快速星像提取算法,对于提高测姿速率,研发高性能实时姿态测量星敏感器具有重要意义。星像提取包括星像和背景分离、星像与星像的分离、质心计算和亮度计算处理过 程,目前的星像提取算法大都是改进其中一个或几个步骤的处理方法。针对星像和背景的分离,李广泽等在2005年第13卷SI期“光学精密工程”上报道了基于双正交小波的星像提取算法,通过双正交小波变换分解星图,确定阈值分割星像和背景。在2009年第35卷第3期“光学技术”上发表的《基于背景自适应预测的星点提取算法》在背景预测的基础上,采用自适应阈值法分割图像,提出了背景自适应预测的星像提取算法。它们都属于动态阈值分割算法,虽然提高了分割准确性,但处理速率低于固定阈值法。在星像间分离方面,最常用的方法是连通域标记法,除需要遍历星图外,邻域像元经常发生标记冲突,算法须回溯扫描。分别发表在2005年“北京航空航天大学学报”第31卷第3期和第4期的《内嵌ARM核的FPGA技术在星敏感器中的应用》和《CMOS星敏感器图像驱动及实时星点定位算法》基于嵌入式技术,采用FPGA硬件方法实现了 4连通域实时星像提取,提高了运行速率。区域增长算法也是一种常用的方法,不存在标记冲突问题,不需回溯扫描,但为了寻找启始种子,需重复遍历星图,处理速率还不够理想。2005年柳健等在“光电工程”第32卷第2期上提出了极值点法,利用最小二乘向量机求出星图局部区域灰度的最佳拟合曲面,以曲面的最大值点作为像素聚类的启始点,分离各个星像。2006年王兆魁等在“空间科学学报”第26卷第3期上提出交叉投影星像提取算法,通过检测竖直和水平方向上的星图投影,得到各个星像外接四边形的顶点坐标,确定每个星像的分布范围。与质心计算有关的星像提取算法中,曲面拟合方法精度较高,抗噪性能优于带阈值的质心算法和加权质心算法。2006年李春艳等在“光电工程”第33卷第2期上提出基于亚像元相关法的星像质心算法,将星像数据拟合成解析曲面函数,并与理想模板函数作相关运算,求相关函数,通过计算相关函数最大值,求出星像位置,计算精度优于1/12个像元,由于计算过程复杂,星像提取速率低。

发明内容
本发明要解决的技术问题是提供一种快速从星图中提取星像,以缩短星象提取时间的方法。
本发明的从星图中提取星像的方法的基本思想是,经过灰度阈值处理后的星图,星像只占少部分区域,大部分区域灰度值为O。以十字链表稀疏矩阵结构记录星图,可剔除无关信息,避免重复判断非星像像元。通过处理十字链表,即可完成提取星像。区域增长算法从启始种子开始连通星像区域,减少了判断非星像像元的次数。星图以十字链表存储时,十字链表的每个节点都代表星像像元。而以区域增长算法处理十字链表星图,不必再判断当前像元是否为星像像元。这样,可以避免重复扫描星图。如果十字链表中的星像像元已经连通,当提取一个连通区域后,该区域像元已全部从链表中删除。提取出的像元数据直接用于计算星像质心。当提取新的星 像时,启始种子总是十字链表的第一个节点,不需再次扫描星图。按照区域增长算法的基本原理,在一个星像区域的增长过程中遇到的每一个灰度大于阈值的像元都是种子,它们将执行相同的任务,检查邻域是否有新的种子,直到在新种子邻域中找不到未知的种子,此时一个星像区域已经连通,本发明将该过程称为像元聚类。本发明提供了一种从星图中提取星像的方法,包括步骤一、设一星图的背景区域像元的灰度值为0,星像像元的灰度值为非O;对该星图进行遍历,以将所述星图转换为十字链表;提取灰度值为非O的星像像元的坐标(X,y)和灰度值f (χ, y),并把所述星像像元的坐标(χ, y)和灰度值f (χ, y)存储到十字链表的节点中;通过该步骤一能有效的做到星象和背景的分离。步骤二、定义初始值为O的三个变量ACC1、ACC2、ACC3作为三个累加器。步骤三、在星图中,一个星像占据一个连通的区域,将该连通的区域称为一个星像区域;以区域增长算法连通一星像区域,即以所述十字链表中的第一个节点为启始种子,依次提取代表邻域节点的像元的坐标(x,y)和灰度值f(x,y),同时将所述的三个累加器分别增加xf (χ, y)、yf (χ, y)、f (x, y),并将提取过所述坐标(x, y)和灰度值f (x, y)的节点从所述十字链表中删除;重复该步骤三,直至所述星像区域已经连通;通过区域增长算法能够快速的查找并判断星像区域,并实现星像和星像的分离。步骤四、使用所述三个累加器计算该星像的质心坐标(X。,yc)和亮度Y,即
ACC\ A Cd质心坐标(xc,yc)为X=-,Jc =-.
A CC 3 ACC3 1亮度为Y= ACC3;通过以上两个公式能快速的计算出质心坐标和亮度。步骤五、将所述的三个累加器置0,重复上述步骤三至四,直至所述十字链表为空,即所有星像提取完毕。进一步,为了能更好的达到分离星象和背景的目的,取阈值约等于背景灰度均值,带阈值的质心算法精度高。固定阈值法先以灰度阈值T处理星图,如下式计算,
m 、 /(λ% y) - τ 士ι/(χ,y) ^ τ
r (Λ*, V) = iΛ .■ [ο其余其中f (χ,y)、F(x,y)分别为星图像元阈值处理前和处理后的灰度值。所述步骤一中将所述星图转换为十字链表的方法包括设所述星图的背景灰度均值为阈值T,若一星图像元的灰度值f(x,y)大于该阈值T,则该星像像元的灰度值为非O ;若星图像元的灰度值f(x, y)等于该阈值T,则该星像像元的灰度值为O。本发明具有以下优点(I)采用固定阈值法能快速的将星图转换为十字链表,并将星像像元的坐标U,y)和灰度值f(x,y)存储到十字链表的节点中,有效的做到星象和背景的分离;(2)取阈值约等于背景灰度均值,带阈值的质心算法精度高;(3)通过区域增长算法能够快速的查找并判断星像区域,并实现星像和星像的分离;(4)当连通一个星像后,直接计算星像质心,提取星像速率快;(5)该方法只需一次星图遍历,避免重复判断星像像
J Li ο


为了使本发明的内容更容易被清楚的理解,下面根据的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图I是本发明的从星图中提取星像的方法的流程图;图2是本发明的从星图中提取星像的方法处理一幅星图的耗时统计图;图3是本发明的从星图中提取星像的方法处理一幅星图耗费时间统计图;图4是本发明的从星图中提取星像的方法提取一个星像平均耗费时间统计图。
具体实施例方式下面结合附图及实施例对本发明进行详细说明实施例I一种从星图中提取星像的方法,包括步骤一、设一星图的背景区域像元的灰度值为0,星像像元的灰度值为非O ;对该星图进行遍历,以将所述星图转换为十字链表;提取灰度值为非O的星像像元的坐标(X,y)和灰度值f (χ, y),并把所述星像像元的坐标(χ, y)和灰度值f (χ, y)存储到十字链表的节点中;进一步,为了能更好的达到分离星象和背景的目的,固定阈值法的取阈值约等于背景灰度均值,带阈值的质心算法精度高。固定阈值法先以灰度阈值T处理星图,如下式计算,
、If(^y)-T 3/(x,j)>r
Fix, y) 二 <u A to其余其中f (x,y)、F(x,y)分别为星图像元阈值处理前和处理后的灰度值。所述步骤一中将所述星图转换为十字链表的方法包括设所述星图的背景灰度均值为阈值T,若一星图像元的灰度值f(x,y)大于该阈值T,则该星像像元的灰度值为非O ;若星图像元的灰度值f(x, y)等于该阈值T,则该星像像元的灰度值为O。十字链表是一种稀疏矩阵数据结构,各个非O元素通过指针相互串接,成为链表的一个节点,每个节点除行、列坐标、元素值外,还以行向量指针right指向同行下一个节点,以列向量指针down指向同列下一个节点。其结构定义为struct CrossNode{int row, col;TYPE value;CrossNode*right, *down;}整个矩阵结构为struct CLMatrix {int m, n, t;CrossNode^rv[MaxRows+1];CrossNode^cv[MaxRows+1];}其中rv和cv分别代表每行、每列第一个像元的节点,MaxRows表示行数可取的最大值。由以上定义可见,每个节点本身是一个指针,包含链表中的后继数据,其是一种十分紧凑的数据存储结构。步骤二、定义初始值为O的三个变量ACC1、ACC2、ACC3作为三个累加器;步骤三、在星图中,一个星像占据一个连通的区域,将该连通的区域称为一个星像区域;以区域增长算法连通一星像区域,即以所述十字链表中的第一个节点为启始种子,依次提取代表邻域节点的像元的坐标(X,y)和灰度值f(x,y),同时将所述的三个累加器分别增加xf (χ, y)、yf (χ, y)、f (x, y),并将提取过所述坐标(x, y)和灰度值f (x, y)的节点从所述十字链表中删除,即将所述启始种子上一节点的down指针指向下一节点,将左一节点的right指针指向右一节点,将该种子从链表中删除;重复该步骤三,直至所述星像区域已经连通。步骤四、使用所述三个累加器计算该星像的质心坐标(X。,yc)和亮度Y,即

质心坐标(X。,y。)为
权利要求
1.一种从星图中提取星像的方法,包括 步骤一、设一星图的背景区域像元的灰度值为O,星像像元的灰度值为非O ;对该星图进行遍历,以将所述星图转换为十字链表;提取灰度值为非O的星像像元的坐标(X,y)和灰度值f (X,y),并把所述星像像元的坐标(X,y)和灰度值f (X,y)存储到十字链表的节点中; 步骤二、定义初始值为O的三个变量ACC1、ACC2、ACC3作为三个累加器; 步骤三、在星图中,一个星像占据一个连通的区域,将该连通的区域称为一个星像区域;以区域增长算法连通一星像区域,即以所述十字链表中的第一个节点为启始种子,依次提取代表邻域节点的像元的坐标U,y)和灰度值f(x,y),同时将所述的三个累加器分别增加Xf (X,y)、yf (X,y)、f (x, y),并将提取过所述坐标(x, y)和灰度值f (x, y)的节点从所述十字链表中删除;重复该步骤三,直至所述星像区域已经连通; 步骤四、使用所述三个累加器计算该星像的质心坐标(U。)和亮度Y,即
2.根据权利要求I所述的从星图中提取星像的方法,其特征在于所述步骤一中将所述星图转换为十字链表的方法包括设所述星图的背景灰度均值为阈值T,若一星图像元的灰度值f (X,y)大于该阈值T,则该星像像元的灰度值为非O ;若星图像元的灰度值f(x, y)等于该阈值T,则该星像像元的灰度值为O。
全文摘要
本发明涉及一种从星图中提取星像的方法,包括一、将星图转换为十字链表;并把星像像元的坐标(x,y)和灰度值f(x,y)存储到十字链表的节点中;二、定义初始值为0的三个变量ACC1、ACC2、ACC3作为三个累加器;三、以区域增长算法连通一星像区域,同时将所述的三个累加器分别增加xf(x,y)、yf(x,y)、f(x,y),并将提取过所述坐标(x,y)和灰度值f(x,y)的节点从所述十字链表中删除;重复该步骤三,直至所述星像区域已经连通;四、使用所述三个累加器计算该星像的质心坐标(xc,yc)和亮度Y;五、将所述的三个累加器置0,重复上述步骤三至四,直至所述十字链表为空,即所有星像提取完毕。
文档编号G06T7/00GK102903105SQ201210344609
公开日2013年1月30日 申请日期2012年9月17日 优先权日2012年9月17日
发明者朱锡芳, 吴峰, 沈为民, 许清泉 申请人:常州工学院, 苏州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1