1 引言
一米红外太阳望远镜(YNST)主要用于太阳活动区磁场的精细光谱分析和时空精细结构研究,要求望远镜必须长时间高精度的跟踪太阳才能顺利实现其科学目标。为了使控制系统达到0.3″的跟踪指标,要求太阳像中心偏移量的检测精度达到0.2″,本文通过边缘检测算法来研究太阳像偏移量的高精度检测。
基于边缘检测的太阳像中心算法是采用边缘检测算子提取CCD 采集到的太阳像边缘并去除由于活动区(爆发、黑子)而出现的非日面边缘区域(伪边缘),并对日面边缘进行细化,然后通过提取太阳像边缘坐标以得到精确的日面中心坐标。
2 边缘检测算子
图像的边缘对应着图像灰度的不连续性,边缘的种类分为两种:一种为阶跃型边缘(STep-edge),即边缘两边像素的灰度值有着显着的不同,另一种称为屋顶状边缘(roof-edge),即边缘位于灰度值从增加到减少的变化转折点。边缘检测算子检查每个像素的邻域并对灰度变化率进行量化,通常采用基于方向导数掩膜求卷积的方法。
经典的边缘检测算子是考察图像的每个像素在某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,对于阶跃型边缘,二阶方向导数在边缘处呈零交叉,而对于屋顶状边缘,二阶方向导数在边缘处取极值。本文介绍三种边缘检测算子并对太阳像的边缘检测结果进行比较。
2.1 Roberts 边缘检测算子
利用局部差分寻找边缘的算子,边缘的锐利程度由图像灰度的梯度决定。通过得出灰度变化最快的方向和大小。Roberts 算子可表示为:
其中f (i, j)、f (i +1, j +1)、f (i, j +1)、f (i +1, j)分别为4 邻域的坐标,且是具有整数像素坐标的输入图像。
Roberts 算子是一个2ⅹ2 算子模板,这两个卷积核分别为:
2.2 Prewitt 算子和Sobel 算子
Prewitt 算子是使用两个有向算子(水平和直方向,称为模板)对图像进行卷积,然后取最大值作为输出值就可以产生边缘图像。这两个卷积核分别为:
分别用水平算子和垂直算子对图像M 进行卷积,得到两个和原图像同样大小的矩阵M1、M2,然后把两个矩阵对应位置的两个数平方后相加得到一个新的矩阵G(M 中各个像素灰度的梯度值),即可得到边缘图像。
Sobel 算子与Prewitt 算子的不同之处就在于使用的模板不一样,其使用的卷积核分别为:
3 软件模拟分析
本文以云南天文台太阳色球望远镜拍摄的全日面像作为处理图像,从图中可以看到,太阳像中存在较为明显的暗条和耀斑等活动区现象,因此采用该图像将保证算法在实际应用中的可靠性,下面分别采用Roberts 算子、Sobel 算子和Prewitt 算子提取其边缘。
使用matlab 图像处理工具箱进行边缘检测的部分主要程序代码如下:
BW0=imread(C:\sunphoto\ynao_halph_fd_20090324_020922.jpg);
[g,t] = edge(BW0,roberts); %求出阈值为0.0115
BW1 = edge(BW0,roberts,0.02); %设定阈值为0.02
BW2 = edge(BW0,Prewitt,0.02);
BW3=edge(BW0,sobel,0.02);
imshow(BW0),title(云南天文台全日面像);
imshow(BW1),title(Roberts 算子检测结果);
imshow(BW2),title(Prewitt 算子检测结果);
imshow(BW3),title(Sobel 算子检测结果);
运行程序后,得到的边缘检测结果如图1 所示:
三种边缘检测算子对全日面像的检测效果
通过三种检测算子的效果图可以看出,三种算子的边缘检测结果差别不大,但由于Roberts 算子进行检测计算量较少,因此对于实时性要求较高的望远镜控制系统选择Roberts 算子来检测全日面像的边缘是可行的方法之一。
通过上面三种边缘检测算子对全日面像的边缘提取后的图像,产生了一些不是太阳像真正边缘的伪边缘。处理伪边缘的方法是:在经过边缘检测后的图像中,对距离太阳像中心的距离小于4/5 个太阳半径以及大于6/5 个半径的像素点,将该像素的灰度值定为0,这样就可以消除非日面边缘的影响。
对边缘图像经过噪声处理后,可以将太阳像的边缘限制在10 个像素范围之内,因此需要将边缘细化。本文采用质心法对边缘进行细化,细化公式为:
其中,B 表示太阳像的边缘坐标,f(n)表示像素点n 处的灰度值。
4 应用及结论
通过matlab 软件将参考图像在x、y 方向上平移亚像元生成目标图像,然后提取参考图像和目标图像的边缘并进行噪声和细化处理,将计算的中心偏移量与理论偏移量相减即为算法的检测精度。最终的模拟结果是:x 方向的PV(极值误差)值为-0.2571″,y 方向的PV值为-0.3070″;x 方向的RMS(均方差)值为0.1017″,y 方向的RMS 值为0.1262″。在图像处理时间方面,进行边缘检测和中心计算的时间为1.0866s。
本文作者创新点:在望远镜电控系统中,太阳像中心偏移量的检测精度与望远镜的跟踪精度有着密切的关系。本文通过三种边缘检测算子的实际分析结果可知采用边缘算子检测太阳像边缘并对边缘进行细化的方法达到了系统设计要求。对于时间方面,可采用DSP 和FPGA的电子快速处理系统进一步优化算法处理效率。