AUTOMATED CORONAL LOOP SEGMENTATION USING SNAKE-BASED ALGORITHM

Woon Khang Tang

A Thesis

Submitted to the Graduate College of Bowling Green State University in partial fulfillment of the requirements for the degree of

MASTER OF SCIENCE

August 2010

Committee:

Dr. Jong Kwan Lee, Advisor

Dr. Ray Kresman

Dr. Hassan Rajaei ii ABSTRACT

Dr. Jong Kwan Lee, Advisor

In this thesis, an automated technique, G-snake, for segmenting the coronal loops from intensity images of the ’s corona is studied. G-snake involves use of the active contour model (snake) based on the Gaussian-like coronal loop cross-sectional intensity profiles. It also utilizes the principal component analysis in the snake process. We study the effectiveness of G-snake using synthetic datasets as well as real coronal images. iii ACKNOWLEDGMENTS

First and foremost I express my deepest appreciation to my advisor, Dr. Jong Kwan “Jake” Lee, who introduced me to the vast world of Computer Graphics-related areas. I would like to specially thank him for his guidance during my study at the Bowling Green State University. Without his encouragement and support, this thesis would not have been possible. I would also like to take this opportunity to thank Dr. Ray Kresman and Dr. Hassan Rajaei for their insightful comments. Last but not least, I would like to thank my parents and my friends for their support and love. iv

Table of Contents

CHAPTER 1: INTRODUCTION 1 1.1 Background ...... 1 1.2 Automated Coronal Loop Segmentation ...... 2 1.3 Organization ...... 4

CHAPTER 2: RELATED WORK 5 2.1 Oriented Connectivity Method (OCM) ...... 5 2.2 Dynamic Aperture-based Method (DAM) ...... 7 2.3 Unbiased Detection Method of Curvilinear Structures (UDM) ...... 8 2.4 Incremental Random Hough Transform (I-RHT) ...... 8 2.5 Supervised Neural Learning Strategies with Classifiers (SNLS) ...... 9 2.6 Oriented Coronal CUrved Loop Tracing (OCCULT) ...... 10 2.7 2D Wavelet Transform Modulus Maxima Method (WTMM) ...... 11 2.8 Proposed Work ...... 12

CHAPTER 3: NEW AUTOMATED CORONAL LOOP SEGMENTATION 13 3.1 Active Contour Model (Snake) ...... 13 3.1.1 Internal Energy ...... 14 3.1.2 External Energy ...... 14 3.1.3 Snake Energy Minimization ...... 16 3.2 New Approach: Gaussian-snake (G-snake) ...... 16 v 3.2.1 Internal Energy ...... 17 3.2.2 External Energy ...... 18 3.2.3 Energy Minimization of G-snake ...... 23 3.3 Preprocessing and Post-processing ...... 25

CHAPTER 4: EXPERIMENTAL RESULTS 27 4.1 Synthetic Dataset Experiment ...... 27 4.2 Real Corona Image Experiment ...... 40

CHAPTER 5: CONCLUSION AND FUTURE WORK 51 5.1 Contribution ...... 51 5.2 Future Work ...... 52

BIBLIOGRAPHY 54 vi

List of Figures

1.1 Sample corona image ...... 3

3.1 Illustration of Gaussian curve fitting using 10 intensity values sampled from a (pre-processed) TRACE image...... 20 3.2 Example of estimating a loop point’s directionality ...... 21 3.3 Directionality image of coronal image shown in Figure 1.1 ...... 22

3.4 Example of G-snake’s local minimization process for a point Pi in a 3 × 3 region 24 3.5 Preprocessing steps ...... 26

4.1 Synthetic datasets ...... 29 4.2 Results of G-snake overlaid (in orange) on the synthetic datasets ...... 34 4.3 Real corona images ...... 41 4.4 Results of G-snake overlaid (in orange) on the real images ...... 44 4.5 Manual segmentation overlaid (in red) on real images ...... 47 vii

List of Tables

4.1 Global positional error (GPE) measures on synthetic datasets ...... 39 4.2 Global positional error (GPE) and false positive error measures on real corona images ...... 50 1

CHAPTER 1

INTRODUCTION

Automated object and feature segmentation techniques have been used and studied widely in many applications. For example, some of the practical applications include fingerprint recognition [1, 2, 3], face recognition [4, 5, 6], medical imaging [7, 8, 9], etc. In this thesis, we focus on the automated segmentation of arching loop structures in images of the Sun’s corona. In this chapter, we give an introduction to automated segmentation of coronal loops. We first describe some background about the Sun and the coronal loops. Then, we discuss the importance of studying the topic and discuss how automated segmentation techniques can be beneficial. In addition, we discuss the difficulties of automated coronal loop segmentation.

1.1 Background

The Sun provides light and heat for life on . The Sun’s outer layers consist of three layers: the , the , and the corona. The photosphere is the visible surface of the Sun. The temperature in the photosphere is about 4, 500 − 6, 000 ◦K. The chromosphere is a relatively thin layer above the photosphere. It extends 2,000 kilometers above the Sun’s surface. The temperature in the chromosphere increases gradually with altitude, up to 20, 000 ◦K near the top. The corona is the outermost layer of the Sun. It 2 extends for several millions of kilometers above the Sun’s surface. The average temperature of the corona is very hot, up to 2, 000, 000 ◦K. In the lower region of the corona, there are curvilinear structures. These structures are called the corona loop structures. The Transition Region and Coronal Explorer (TRACE) [11] is a NASA space mission that captures high resolution images of the Sun. The images from TRACE are a preferred source of solar coronal images, as TRACE collects high-resolution intensity images of up to 1024 by 1024 pixels from the Sun’s corona many times per hour. Here, we note that we have used the TRACE images for our coronal loop segmentation. A sample corona image of TRACE is shown in Figure 1.1. The bright arching structures are the coronal loops. As seen in Figure 1.1, coronal loops appear as tube-like thin arc structures in TRACE images. Many solar scientists study the images taken from TRACE to analyze various phe- nomenon around the Sun; many of them focus on the Sun’s magnetic field study as the Sun’s magnetic field is the source of many solar activities that impact the near-Earth envi- ronment [12]. The coronal loop structures provide evidences of the solar magnetic field [10]. Thus, the automatic segmentation of these structures can aid solar scientists in studying and analyzing the Sun’s solar magnetic field. Here, we note that there are also many other solar studies besides the automatic segmentation of the coronal loops. However, since those studies are not closely-related to our work, we do not discuss about them in this thesis.

1.2 Automated Coronal Loop Segmentation

Recently, there has been an increasing importance in the study of automated coronal loop segmentation techniques in , largely due to the escalating growth of available solar imaging data. These data can be used in scientific analysis to understand the Sun’s dynamic activities. Since the Sun’s dynamic activities directly influence the Earth’s atmo- sphere, the available solar image data are of high interest to the scientists. One example of solar activity impacting the Earth is the solar storms. Solar storms can cause disturbance in 3

Figure 1.1: Sample corona image

near-Earth , damage satellite sensors, and disrupt communications on Earth. Scientists have found that many are ultimately caused by the changes in the Sun’s solar magnetic fields [12]. Solar scientists study the solar magnetic fields by ob- serving the arching coronal loop structures found in solar imagery since these structures are vestiges of the solar magnetic field [14]. By developing automated coronal loop segmentation techniques, large number of coronal image analysis can be realized and the segmentation re- sults can be compared in a consistent and effective way. Although manual methods can be employed, it is unrealistic as it is extremely laborious and error prone. Moreover, the manual results are most likely not self-consistent due to human bias. Automating the process of coronal loops segmentation is a challenging task. First, coronal images have a wide range of intensity distribution and different noise distribution across the image. Developing an automated segmentation technique that works on all different dynamic coronal images is very difficult. Second, the coronal loop structures can overlap each other. The overlapping of loops is caused by the projection of 3D structures on to 2D image. The segmentation of overlapped loops is difficult as the overlapped portions can exhibit different 4 pixel properties than those of the other loop pixels. Third, the boundaries of the coronal loop structures do not have distinct edges and are often blurry. In addition, some loops have relatively lower contrast in sub-segments of its loop and the loop structure shapes can also be very complex. Finally, besides the image noises, there are other non-loop features on the corona image. For instance, part of the corona image often contain bright structures called solar moss [15]. Solar moss looks like a sponge-like wide white spots in the image and is often bright. Distinguishing these solar moss from the corona loops is very difficult.

1.3 Organization

The rest of this thesis is organized as follows. In Chapter 2, we discuss the related work. In Chapter 3, we discuss a new technique for automated coronal loop segmentation. In Chapter 4, we report the experimental results on synthetic and real images. Chapter 5 concludes this thesis and discusses future work. 5

CHAPTER 2

RELATED WORK

There have been a large number of automated pattern recognition techniques for region-based features or curvi-linear features (e.g., automatic recognition of human faces and facial ex- pressions [13] and unbiased detection method of curvi-linear structures [19]). In this chapter, we summarize work done by others on automated coronal loop segmentation approaches. The summaries of the related work discussed in this chapter can provide readers informa- tion about prior efforts in automated coronal loop segmentation. Although there are many automated segmentation approaches for other applications, only seven coronal loop segmen- tation technqiues have been proposed in the literature. In the next seven subsections, we review these seven approaches. Then in Section 2.8 we comment on how our work relates to work earlier by these researches. Computer vision and pattern recognition communities can find these approaches helpful in their applications.

2.1 Oriented Connectivity Method (OCM)

The Oriented Connectivity Method (OCM) [10] is the first automated coronal loop seg- mentation method. The term “oriented connectivity” means that the segmentation of loop curves is guided by directional constraints. OCM utilizes a physical solar magnetic field model in connecting loop pixels. Specifically, a physical magnetic field model is utilized to 6 derive external estimates of the field’s local orientation, which is then used to guide the loop segmentation process. OCM performs loop segmentation via a constructive edge link- age method. OCM includes three processing steps: preprocessing, model-guided loop pixel linking, and post-processing. The first step of OCM is preprocessing of the solar image. The goals of the preprocessing step are to remove image pixels that are unlikely to be on the corona loops and to determine solar magnetic field using a simplified physical model. First, median filtering is applied to the image to remove impulse noise. (Impulse noise is random occurrences of intensity spikes and is produced during image acquisition by the camera sensors and transmission in the communication channel.) Second, unsharp masking is applied to sharpen the loop structures. Unsharp masking enhances the contrast between the loops and the background by subtracting the original image itself with its blurred version of the image. Third, Strous’ loop pixel labeling algorithm [16] is applied to label all potential loop pixels. The algorithm labels loops pixels by finding a pixel whose intensity value is larger than its neighbor pixels along at least two directions. Lastly, a set of estimates of the 3D-to-2D-projected magnetic fields’ orientation is computed to provide an estimate of the local orientation [10]. After the preprocessing step, the core of the coronal loop segmentation is performed by using the potential loop pixels and the magnetic fields’ local orientation estimates determined in the preprocessing step. The loop segmentation is performed via a constructive edge linkage and is guided by the magnetic field’s orientation. The use of the magnetic field’s model estimate is to progressively link neighboring loop pixels together with orientation that is consistent with the magnetic field’s orientation. By selecting a potential loop pixel as a starting point, the loop structure is segmented in a stepwise fashion until all other pixels that define the same loop structure are linked together. At each step, one loop pixel is added to the current loop. A weighting scheme is employed to choose the best loop pixel within certain criteria (e.g., close distance, similar intensity and directionality) among all potential loop pixels that are determined using the local orientation field model estimates. 7 The final step is the post-processing step. The goal is to remove the aliasing (i.e., jaggy) and to join the disconnected subsegments of the loops. First, a B-spline fitting [41] is applied to produce smooth loop curves. Then, edge linking and a second B-spline fitting are applied to join disconnected loop segments smoothly.

2.2 Dynamic Aperture-based Method (DAM)

Carcedo et al. [17] found that the cross-sectional intensity profiles of coronal loops follow a Gaussian-like distribution. The Dynamic Aperture-based Method (DAM) [18], which is the second published automated coronal loop segmentation method in the literature, segments coronal loops by exploiting the Gaussian-like shape of loop cross-sectional intensity profiles. DAM is different from OCM in that it does not depend on external information about the solar magnetic field. First, DAM searches the image for regions where cross-sectional intensity profiles match a ruled Gaussian surface (RGS). A RGS is a surface that can be swept out by moving a Gaussian curve in 3D space. The intensity profiles in a small image region are fitted by a RGS and the fitted RGS parameters are examined. If the RGS parameters are deemed reasonable, a loop is determined to present in the region. Since nearby RGSs that are on the same loop have very similar Gaussian shape parameters, DAM’s linkage process consists of steps that cluster adjacent RGSs with similar RGS parameters. Moreover, similar adjacent RGSs are joined together only if they have similar orientation, as determined by the principal component analysis (PCA) (i.e., In DAM, PCA is applied to estimate the loop’s angular direction.). PCA is a statistical method widely applied in identifying the primary direction of maximum variance in data [38]. Here, we note that our work studied in the thesis research is partly based on DAM. Similar to OCM, DAM also includes preprocessing and post-processing steps. For the preprocessing steps, DAM applies median filtering, high-boosting, and global thresholding. 8 The post-processing steps for DAM are the same as OCM.

2.3 Unbiased Detection Method of Curvilinear Struc-

tures (UDM)

Steger [19] has developed a method to detect curvilinear structures from an image. It is called Unbiased Detection Method of curvilinear structures (UDM). UDM segments curvilinear structures with different lateral contrast by taking account of its surroundings. UDM corrects the bias that is induced by asymmetrical lines with different lateral contrast. The bias correction process includes the step to determine the position of a curvilinear structure using the second derivative in direction perpendicular to the curvilinear structure. By using the second derivative information, UDM is able to segment curvilinear structures without being influenced by its width and asymmetric property. UDM has been applied to many different applications, such as remote sensing in aerial images (e.g., detecting roads and rivers) and medical imaging (e.g., detecting blood vessels in X-ray images). In addition, UDM has adopted to work with TRACE images for coronal loop detection by Smith [20]. The work of Steger was extended by Raghupathy [21]. Raghupathy made improvements to UDM by introducing a global process that traces the loops. In particular, Raghupathy’s approach includes a local process and a global process: (1) local process to link pixels that belong to the same curve using gradients in a neighborhood region and (2) global process to link disconnected curve subsegments using the generalized Radon transform.

2.4 Incremental Random Hough Transform (I-RHT)

Sellah and Nasraoui [22] have utilized a version of Hough Transform (HT) [23] for coronal loop detection. HT is a technique originally invented to detect lines in an image, but was 9 later extended to detect curves such as circles, ellipses, and even arbitrary shapes [24]. HT extracts imperfect instances of a particular shape within an image using a voting procedure, where voting of shape candidates is done in a parameter space and stored in an array (called the Hough accumulator). The extracted shape is then obtained as the local maxima of the accumulator. Incremental Random Hough transform (I-RHT) [22] is one type of specialized HTs that aims at detection of ellipses in an image by using a stream clustering algorithm to contin- uously update and extract areas from the Hough accumulator. The incremental module of I-RHT consists of two independent parts: the computation of potential ellipse parameters and the clustering algorithm to select potential ellipses. The potential ellipse parameters is computed by using a set of 3 points from the data stream to solve a system of three linear equations [31, 32]. As the computation for each set of data is done, the records of poten- tial ellipses are being processed using a clustering algorithm. The TRAC-Stream algorithm (Tracking Robust Adaptive Clusters in evolving data streams) [25] is chosen due to its ability to process data in an incremental fashion and its resistance to unpredictable outliers.

2.5 Supervised Neural Learning Strategies with Clas-

sifiers (SNLS)

Durak et al. [26] have developed a coronal loop detection technique called Supervised Neural Strategies with Classifiers (SNLS) that specifically adapts loop detection in noisy regions. Their technique is based on the direction of the previously detected points to choose the best next linking point. The main criteria in choosing the best next point is the Euclidean distance and average direction change of the previously detected points. This approach reduces the possibility of choosing undesired points. The main goal of SNLS is to provide an automated solution for finding relevant data, such as data which contain coronal loops of interest [26]. One application of SNLS is to 10 eliminate a large number of images that do not contain any loops. SNLS also provides a solution that locates the positions of the loops on the image. First, astrophysics experts mark coronal loops in an image by enclosing each of them within a minimum bounding rectangle. Then, image preprocessing methods are applied to enhance the quality of the image. Next, several small fixed-sized blocks are extracted from the image by rotating where the arches of coronal loop appearing at the blocks’ top portion. Each of the extracted blocks are automatically labeled as a loop class if it contains coronal loops and as a no-loop class if it does not contain loops. A block is defined as a loop class if the intersection of the block with the expert-marked loop regions is greater than a threshold. After the automated labeling, a loop tracing algorithm is applied. The tracing algorithm is developed specifically to address the problem of discontinuity and noisy regions that appear in loops. To ensure the highest possibility of selecting the correct loop points, the tracing algorithm calculates the relative direction of the next point based on the current point.

2.6 Oriented Coronal CUrved Loop Tracing (OCCULT)

Aschwanden [27] has introduced the Oriented Coronal CUrved Loop Tracing (OCCULT) which is based on an earlier oriented-directivity loop tracing method (ODM) [28]. ”Oriented- directivity” means the tracing of the curve is guided by some directivity constraints (similar to OCM [10]). The ODM traces the loops using the directivity constraint, but unlike OCM which uses the global connectivity constraints (i.e., the pre-computed global magnetic field model), it uses only the local directivity constraint. Although OCCULT shares some sim- ilarities with ODM, OCCULT is customized to exploit the specific property that coronal loops have large curvature radii compared with their widths. Specifically, OCCULT uses the curvature radius constraint to predict the range of directions based on previous loop segment. The method consists of iterative steps to detect loop structures. It selects the brightest 11 point on the loop as the starting point and ends at the faintest point above a pre-defined threshold. Then, it performs a bi-directional tracing in opposite direction to the second end point on the loop. The loop points from one end point to another is subsequently regrouped in consecutive order. The pixels in the detected loop are then removed from the image. In each iterative step, the algorithm adds a new loop pixel to the current traced loop. The next loop pixel is chosen such that it follows the loop’s direction and the loop curvature, which requires the curvature radius to be large enough compared with the loop’s width. The loop’s directivity is determined by sampling the average fluxes in every direction within a distance. The iteration stops when the flux maximum of the image is below a pre-defined threshold.

2.7 2D Wavelet Transform Modulus Maxima Method

(WTMM)

The most recent method introduced for coronal loop segmentation is the 2D Wavelet trans- form modulus maxima (WTMM) method [29]. It is originally based on multifractal analysis formalism [30]. The WTMM method uses the derivative of a 2D smoothing function as an edge detector for coronal loop segmentation. The continuous wavelet transform function f is expressed in

terms of ψ1 and ψ2 as a vector, where ψ1 and ψ2 are the partial derivatives with respect to x and y of the smoothing function. The intensity gradient has a maxima when the modulus of the wavelet transform at a position is locally maximal. Each of these maximas is known as maxima chain and is the contour line of the image at a specific scale. The edge detection works by scanning all the boundary lines that have the highest gradient value (i.e., the maxima chain) for a given scale. The algorithm then outputs each of the pixel location of chain, which correspond to a single detected coronal loop. This process is repeated for all scales. 12 2.8 Proposed Work

The approaches described earlier provide a context for the work reported in this thesis. Our work is similar to them in some ways and different in others. We also consider automated segmentation of coronal loop structures. And our approach has preprocessing and post- processing steps similar to the steps used in [10, 18]. However, unlike previous approaches, our approach is an extension to a “snake” approach. Because of the strong dependency, the snake algorithm is discussed in greater detail, in the next chapter. Then, we discuss our extensions to the snake algorithm and justify why those extensions are needed. Extending the snake approach is particularly appealing since it is a flexible model and has been widely applied to a large variety of application problems (e.g., [42]). In addition, the new snake- based technique can also be applied to other application areas. 13

CHAPTER 3

NEW AUTOMATED CORONAL LOOP SEGMENTATION

In this chapter, we present a new technique for automated coronal loop segmentation. In Section 3.1, we review a snake-based segmentation method that our approach is based on. Our technique is described in Section 3.2.

3.1 Active Contour Model (Snake)

Our work is based on the active contour models [33]. The active contour models (also known as snake) [33] was introduced by Kass et al. in 1987 and it has been widely used for detecting lines, edges, and/or object boundaries. A snake is usually defined as an energy minimizing contour that is represented para- metrically by v(s) = (x(s), y(s)), where v(s) are points along the contour. The value of parameter s ranges from 0 to 1. An energy function is associated with the snake. Snake finds an image feature of interest (such as lines and edges) by minimizing its energy function. Snake’s energy function is defined as the sum of the internal energy and the external energy at each point of the snake. The internal energy forces the snake to be continuous and have a smooth curve without oscillations, while the external energy forces the snake to move toward 14 the feature of interest. The snake’s energy function (Esnake) can be defined as

Z 1 Esnake = E(v(s)) ds 0 Z 1 = Eint(v(s)) + Eext(v(s)) ds, (3.1) 0

where Eint is the internal energy and Eext is the external energy. Next, we discuss the details about these energy terms.

3.1.1 Internal Energy

A snake’s internal energy (Eint) at a point can be defined as

α(s)|v (s)|2 + β(s)|v (s)|2 E = s ss , (3.2) int 2

where α(s) is the weight of the first-order term (i.e., vs(s)) and β(s) is the weight of the second-order term (i.e., vss(s)). The first-order term represents continuity. By minimizing the first-order term, gaps in the curve can be avoided. The second-order term represents curvature. By minimizing the second-order term, sharp corners can be avoided. The values of α(s) and β(s) can vary to the extent how much the curve is allowed to stretch or bend at one point. For example, if α(s) is set to zero at a point, a gap can occur at that point and if β(s) is set to zero at a point, the snake can develop a sharp corner at that point.

3.1.2 External Energy

A snake’s external energy (Eext) at a point can be defined as

Eext = Eimage + Econ, (3.3) 15 where Eimage is the image energy that is derived from the image, and Econ is the external constraint energy that is controlled by the external constraint forces.

The image energy term (i.e., Eimage) forces the snake to move toward image features such as object edges. It can be expressed as a linear combination of the three terms as following:

Eimage = wlineEline + wedgeEedge + wtermEterm, (3.4)

where Eline is the line energy term, Eedge is the edge energy term, Eterm is the termination energy term, and wline, wedge, and wterm are the weights of Eline, Eedge, and Eterm, respec- tively. The line energy term (Eline) can be used to move the snake points toward high (or low) intensity pixels in the image. Eline can be defined as

Eline = I(x, y), (3.5)

where I(x, y) is the intensity value at a pixel (x, y). If the sign of wline is positive, the snake point will move to a low intensity pixel and if the sign of wline is negative, the snake point will move to a high intensity pixel. The edge energy term (Eedge) can be used to move the snake points toward the image points with large image gradients. Eedge can be defined as

2 Eedge = −|∇I(x, y)| , (3.6)

where ∇I(x, y) is the gradient of the intensity at a pixel (x, y). Eedge attracts the snake to image points with large image gradients, since image points with large gradients yield a low energy for the snake.

The termination energy term (Eterm) is used to move the snake points toward end points of lines or edges. Eterm is defined as the curvature of the level contours in a smoothed image.

The external constraint energy term (i.e., Econ) is derived from external forces (i.e., forces that guide the snake towards places which minimize the snake’s total energy). Econ forces 16 the snake points to move toward points in the plane. Econ can be defined as

2 Econ = −k(x1 − x2) , (3.7)

where k is the spring constant, x1 is the snake point, and x2 is one of the image point.

3.1.3 Snake Energy Minimization

Kass et al. [33] have minimized their snake energy function (see Equation 3.1) iteratively using Euler equations expressed in sparse matrix form. However, there were some problems with their minimization method. For example, some snake points tend to congregate in certain part and their snake minimization process can be unstable. Amini et al. [35] have proposed a dynamic programming-based minimization process that can avoid some of these problems. However, the minimization using the dynamic programming-based approach is slow. Each iteration has a complexity of O(nm3), where n is the number of snake points and m is the neighborhood size in which a snake point can move during an iteration. Williams and Shah [34] have proposed a greedy algorithm for the snake’s energy mini- mization. This greedy algorithm-based energy minimization process has the complexity of O(nm) for each iteration; the greedy algorithm approach is more than an order of magni- tude faster than the dynamic programming-based approach. In addition, the greedy-based snake’s minimization process is more stable.

3.2 New Approach: Gaussian-snake (G-snake)

We now develop a new snake-based approach for automated segmentation of coronal loop structures, also known as Gaussian-snake (G-snake). The G-snake includes new energy terms that enable the snake to lock on the coronal loop structures. In the following subsections, the G-snake’s new energy terms and its minimization process are described. Here, we note that the G-snake’s minimization process is partly based on the greedy algorithm-based snake [34]. 17 3.2.1 Internal Energy

The internal energy of the G-snake includes three terms: the first-order and the second-order terms (similar to the traditional snake model) and a new energy term called the growth energy term. The first-order term forces the snake to be continuous and avoid gaps. Here, we note that

we represent the first-order term of G-snake as the continuity term (Econt). Econt is defined as

2 Econt = kvi − vi−1k

2 2 = (xi − xi−1) + (yi − yi−1) , (3.8)

where vi = (xi, yi) and vi−1 = (xi−1, yi−1) are adjacent snake points. By minimizing the continuity term in Equation 3.8, the distance between two adjacent snake points is minimized.

However, Econt in Equation 3.8 can “shrink” the snake. To reduce this shrinking effect, a modified form for Econt is used

2 Econt = (d − kvi − vi−1k) , (3.9)

where d is the average distance between all adjacent snake points. This modified form of

Econt forces the distances between adjacent snake points to be maintained at equal distances. The second-order term forces the snake to be smooth and avoid oscillations. Here, we note that we represent the second-order term of G-snake as the curvature term (Ecurv). Ecurv is defined as

2 Ecurv = k(vi+1 − vi) − (vi − vi−1)k

2 = kvi−1 − 2vi + vi+1k

2 2 = (xi−1 − 2xi + xi+1) + (yi−1 − 2yi + yi+1) , (3.10) 18

where vi+1 = (xi+1, yi+1), vi = (xi, yi), and vi−1 = (xi−1, yi−1) are three adjacent snake points. The new internal energy term forces the end points of a snake to grow along a coronal loop structure. We denote this term as the growth term (Egrow) in this thesis. Egrow is defined as

2 Egrow = −kvi − vi−1k

2 2 = −(xi − xi−1) − (yi − yi−1) . (3.11)

Egrow enables the snake to expand in opposite direction along a coronal loop structure. Here, we note that we apply the growth energy only to the first and last points of a snake to prevent

over-growing. This can be done by assigning zero weights for Egrow to all intermediate snake

points and assigning weight of one for Egrow to the end points of a snake.

3.2.2 External Energy

Similar to the internal energy, the external energy of the G-snake includes three terms: the image energy term (similar to the traditional snake model) and two new energy terms called the Gaussian energy term and the directional-cohesion energy term. The image energy term forces the snake points to move toward points with high intensity values. (Here, we note that the center of the coronal loop structures has the highest intensity

on the loop). Eimage is defined as

Eimage = −I(x, y), (3.12)

where I(x, y) is the intensity value at a point (x, y).

While Eimage attracts the snake to points on the coronal loops, it can also move the snake toward noise pixels with high intensity. The external energy terms introduced here 19 can prevent this effect. The terms are based on certain properties exhibited by the coronal loop structures. First, the cross-sectional intensity profile of the coronal loops exhibits Gaussian-like distribution [17]. We call this the Gaussian property of the loop. Second, the angular directions of nearby loop points have similar orientations. We call this the directional-cohesion property. G-snake exploits these loop properties in segmenting loop structures. Specifically, G- snake is forced to move toward the points with Gaussian-distributed intensity. We call the new external energy term using this loop property, the Gaussian term (Egauss). In addition, G-snake is forced to move toward regions where points exhibit strong cohesion in directions that are consistent with the loop’s orientation. We call the new external energy term using this directional-cohesion property, the directional-cohesion term (Edirec).

Egauss enables the G-snake to move toward the points whose intensity profile along the direction that is perpendicular to the loop direction is well-fit by a Gaussian curve. A Gaussian curve can be expressed as

− 1 ( x−B )2 f(x) = Ae 2 C + D, (3.13) where A is the height (i.e., peak intensity), B is the center (i.e., horizontal position of peak), C is the standard deviation of the Gaussian, D is an offset in vertical direction, and x is the position on a profile. Image intensity profile (along the loop’s perpendicular direction) is fitted with the Gaussian curve and then the fitted Gaussian parameters are examined to assign a value for Egauss. (Here, we note that we empirically determined that using 10 image points in the Gaussian curve fitting produces reasonable fitting results for the TRACE coronal images). We have used the Levenberg-Marquardt algorithm (LMA) [36, 37] for the curve fitting. Figure 3.1 shows an illustration of a Gaussian curve fitting using 10 intensity values that are sampled from a coronal loop on a (pre-processed) TRACE image. In the figure, the blue line and dots represent the original sampled intensities and the red curve 20

Figure 3.1: Illustration of Gaussian curve fitting using 10 intensity values sampled from a (pre-processed) TRACE image.

represents the fitted Gaussian curve for the sampled intensities.

We then define Egauss as a function of Gaussian parameters A and B as

Egauss = −G(A, B), (3.14) where the function G is defined as

  0, if poorly-fitted with Gaussian G(A, B) = (3.15)  |B − Cp|, otherwise,

where Cp is the center of the profile. Here, we define a “poorly-fitted with Gaussian” case as when A is negative or too large or the sum of squared Gaussian fitting error is too large.

Next, the directional-cohesion term (Edirec) is discussed.

Edirec enables the G-snake to move toward the points whose directionality is consistent with nearby loop points’ directionalities. We define a directionality of a point as the primary direction of loop point variation in a small image region. (We empirically determined that 11 × 11 image region is suitable image size to compute the directionality of a point.) We use the principal component analysis (PCA) to determine the primary direction of loop point 21

(a) A 11 × 11 image region centered at (487, 516)

(b) Zoom-in image region (c) Median thresholded image (d) Loop point (487, 516)’s di- region rectionality

Figure 3.2: Example of estimating a loop point’s directionality variation. Specifically, in G-snake, PCA is used to estimate the loop point directionality as the arctangent of the maximum eigenvector’s components. Figure 3.2 shows an example of finding the directionality of a loop point. In Figure 3.2 (a), a 11 × 11 image region is marked with a red box on a preprocessed image of a real TRACE image shown in Figure 1.1. (The preprocessing steps for TRACE image are discussed later in this chapter.) To help the reader find the image region, a white arrow is also overlaid in Figure 3.2 (a). In Figure 3.2 (b), the zoom-in region of the image region marked in Figure 3.2 (a) is shown. In Figure 3.2 (c), 22

Figure 3.3: Directionality image of coronal image shown in Figure 1.1

a thresholded image of the image region is shown. Here, we used the median intensity of all pixels in the region as the threshold value. Only the pixels with high intensity values (i.e., pixels in white) are considered in finding loop point directionality (as the coronal loop points have high intensity values). In Figure 3.2 (d), the directionality of the region center is marked with a red arrow. As shown in the figure, the PCA properly determined the directionality for the loop point. In Figure 3.3, the color-coded directionality image of the coronal image shown in Figure 1.1 is shown. In the figure, the colors represent the loop pixel directionality determined by the PCA. A color-coded circle is also shown on the bottom left of the image to help the reader have a better understanding of the image. For example, the points that are colored in yellow indicate that the points’ directionalities are 0◦ or 180◦. As shown in the figure, the nearby points that are on the same loop have similar directionality. Here, we note that the directionality (based on the PCA) has previously been used in [18]. 23

Using the directionality image, we define Edirec as

N N X1 X2 Edirec = |dij − µ|, (3.16) i=1 j=1

where dij denotes the directionality of (i, j) point in N1 × N2 image region and µ denotes the mean directionality of all points. We empirically determined that N1 = 10 and N2 = 3

are reasonable values in determining Edirec.

3.2.3 Energy Minimization of G-snake

In this section, we discuss the minimization process of G-snake’s energy function. The energy function for the G-snake is defined as

N X Esnake = (aiEcont + biEcurv + ciEgrow + diEimage + eiEgauss + fiEdirec), (3.17) i=1

where N is the number of G-snake points and ai, bi, ci, di, ei, and fi are the energy term

weights (0 ≤ ai, bi, ci, di, ei, fi ≤ 1). Here, we note that we have used the normalized energy terms. In our approach, the energy function in Equation 3.17 is minimized using the greedy algorithm used in [34]. The greedy algorithm seeks for the global minimization by selecting local optimal choices. Specifically, G-snake point moves to a new position that has a local

minimum energy. Figure 3.4 shows an example of a G-snake point Pi’s movement in a 3 × 3

local region. In the figure, the G-snake’s value for each point is shown in each box and Pi

0 moves to new position Pi for its local minimum. This local minimization process is repeated for all points until the G-snake becomes stable. We define a G-snake as a stable G-snake when either of these 2 properties holds: (1) all of the snake points have stabilized in an iteration, i.e., none moves; (2) the snake points keep moving the same positions back and forth. 24

Figure 3.4: Example of G-snake’s local minimization process for a point Pi in a 3 × 3 region

Although the greedy algorithm for the G-snake does not guarantee convergence to the global minimization of the energy function, it works well for coronal loop segmentation as long as the initial G-snake points are near the coronal loop structures. We use an automated mechanism for this initial placement on a coronal loop structure. (Here, we note that au- tomated initialization of snake position is very challenging task for all types of snake-based approaches.) In particular, we initially position three equally-spaced G-snake points on a loop by using the directional-cohesion property of the coronal loops. Specifically, we search

0 0 for N1 ×N2 image region that the directionalities of the points in the region are very similar.

0 0 (We use N1 = 10 and N2 = 3 for the G-snake.) The equally-spaced three G-snake points are then positioned along the center of the region. Starting from the initial three points, the G-snake energy minimization process is applied. However, using only three G-snake points for entire coronal loop is often not enough for a long loop structures. To overcome this problem, in our approach, we add an intermediate G- snake point when the distance between adjacent G-snake points is greater than a pre-defined threshold value. (We empirically determined that a value of 10 pixels is a good threshold to add additional point.) 25 3.3 Preprocessing and Post-processing

G-snake requires preprocessing and post-processing steps. We now discuss these steps. The goals of preprocessing steps are to remove impulse noise and to enhance the contrast between the loops and the background. We empirically determined that 3×3 median filtering and 3×3 low-pass filtering reduce much of the impulse noise. Then, a 3×3 unsharp masking is applied to sharpen the loop structures. (Unsharp masking is an image processing method that produces a high contrast image by subtracting a blurred version of the image from the original image.) Figure 3.5 show example images for the preprocessing steps. Figure 3.5 (a) shows the original TRACE coronal image. The processed image after applying median and low-pass filterings is shown in Figure 3.5 (b). Figure 3.5 (c) shows the processed image after unsharp masking. We note that similar preprocessing steps were also used in [10, 18, 27]. The goals of post-processing steps are to connect the G-snake points smoothly and to link disconnected loop segments. The post-processing consists of two steps. The first step is to connect the G-snake points by applying a B-spline fitting [41]. Specifically, we use the G- snake points as the control points of a B-spline. The second step is to connect sub-segments of the loops using an edge linking. Specifically, we connect two loop segments if they satisfy two conditions. First, their end points are within a distance less than a pre-defined distance threshold. Second, their end points have similar tangent directions. We define two points to have similar tangent directions if the difference between the two tangents is less than a pre-defined direction threshold. We empirically determined that a distance threshold of 100 pixels and a direction threshold of 20 ◦ to be suitable. We note that similar post-processing steps were applied in [10, 18]. 26

(a) Original Trace image

(b) After median and low-pass filterings (c) After unsharp masking

Figure 3.5: Preprocessing steps 27

CHAPTER 4

EXPERIMENTAL RESULTS

In the previous chapter we presented a new approach, G-snake, for automated coronal loop segmentation. In this chapter, we use synthetic datasets as well as real coronal images to evaluate the effectiveness of G-snake. We use 9 synthetic datasets and 5 real images to evaluate the performance of our algo- rithm. We use a well-known performance metric, Global Positioning Error (GPE) and the false positive errors. GPE is formally explained in Section 4.1; other researchers [10, 18] have used similar measures for comparison. We could not compare the performance of our algorithm with other algorithms against these datasets. This was partly due to the difficulty of implementing the other algorithms that reproduce the exact same results.

4.1 Synthetic Dataset Experiment

The synthetic datasets were generated by a simple magnetic dipole field model. A magnetic dipole is a pair of magnetic monopoles of equal magnitude but opposite polarity, separated by a very small distance. In particular, a collection of 3D magnetic field lines were generated using the model and then projected onto a 2D image plane. Each point on the 3D magnetic field lines can be determined as the vector sum of the magnetic flux density components

(Bx, By, Bz), which are determined from the magnetic dipole flux density equation [39]. 28 The magnetic flux density components are as follows:

3B (x − x0)(z − z0) B = 0 , x r5 3B (y − y0)(z − z0) B = 0 , (4.1) y r5 −B (1 − 3(z − z0)2/r2) B = 0 , z r3

where r = p(x − x0)2 + (y − y0)2 + (z − z0)2, x, y, and z are coordinates of the magnetic

0 0 0 field in 3D space, x , y , and z are coordinates of the dipole, and B0 is the magnetic force constant (i.e., B0 scales the strength of the magnetic field). The Bx, By, and Bz shown in Equation 4.1 have also been used by other researchers to simulate magnetic field lines [40, 10]. The 3D magnetic field lines created by Equation 4.1 are projected onto a 2D xy image plane by ignoring the z component. Then, the projected field lines are simulated as coronal loops by applying Gaussian-like cross-sectional intensity (i.e., we have adjusted the cross-sectional intensity along the magnetic field lines such that it follows the Gaussian distribution similar to the real coronal loop structures). In addition, some random noises were added to simulate the background noise similar to the real images. We generated 9 synthetic datasets. The datasets are shown in Figure 4.1. Each image size was 500×500 pixels. Figures 4.1 (a) and (b) contain one loop structure and Figures 4.1 (c) – (i) contain multiple loop structures. The captions for the figures specify the associated parameter values. The results of G-snake automated segmentation are shown in Figure 4.2. In the figures, the orange curves in each figure represent the segmented loop structures by the G-snake (i.e., overlaid curves on the synthetic loops). As shown in the figures, it is apparent that the G-snake reasonably well-segmented the loop structures in the synthetic datasets. 29

(a) Synthetic dataset (2 dipoles; at (120, 270, -10) with B0 = 20.0, at (372, 270, -10) with B0 = -20.0.)

(b) Synthetic dataset (2 dipoles; at (120, 350, -10) with B0 = 20.0, at (372, 220, -10) with B0 = -20.0.) Figure 4.1: Synthetic datasets 30

(c) Synthetic dataset (2 dipoles; at (120, 260, -10) with B0 = 20.0, at (372, 260, -10) with B0 = -20.0.)

(d) Synthetic dataset (2 dipoles; at (157, 170, -10) with B0 = 20.0, at (336, 349, -10) with B0 = -20.0.) Figure 4.1: (Continued) 31

(e) Synthetic dataset (3 dipoles; at (120, 180, -10) with B0 = 20.0, at (272, 410, -10) with B0 = -20.0, at (402, 160, -10) with B0 = -20.0.)

(f) Synthetic dataset (3 dipoles; at (250, 349, -10) with B0 = 20.0, at (100, 100, -10) with B0 = -20.0, at (445, 100, -10) with B0 = -20.0.) Figure 4.1: (Continued) 32

(g) Synthetic dataset (3 dipoles; at (250, 349, -10) with B0 = 20.0, at (100, 80, -10) with B0 = -20.0, at (450, 120, -10) with B0 = -20.0.)

(h) Synthetic dataset (3 dipoles; at (350, 250, -10) with B0 = 20.0, at (110, 440, -10) with B0 = -20.0, at (60, 60, -10) with B0 = -20.0.) Figure 4.1: (Continued) 33

(i) Synthetic dataset (3 dipoles; at (350, 350, -10) with B0 = 9.0, at (150, 350, -10) with B0 = -10.5, at (450, 40, -10) with B0 = -7.0.) Figure 4.1: (Continued) 34

(a)

(b)

Figure 4.2: Results of G-snake overlaid (in orange) on the synthetic datasets 35

(c)

(d)

Figure 4.2: (Continued) 36

(e)

(f)

Figure 4.2: (Continued) 37

(g)

(h)

Figure 4.2: (Continued) 38

(i)

Figure 4.2: (Continued) 39 To quantitatively determine the accuracy of G-snake, the positional errors (e.g., the maximum positional error, the minimum positional error, the mean positional error, and the standard deviation of the positional error) are calculated and expressed in pixel units. Po- sitional error is an estimation of the diversion of differences between the input (i.e., known) loop structures and the segmented loop structures. We measured the positional errors by finding the global pixel-by-pixel minimum Euclidean distances between the input loop struc- tures and the segmented loop structures. We call this the global positional error (GPE) in this thesis. In addition, we measured the false positive errors. We define a false-positively- segmented loop as a loop that more than 50% of the loop points have GPE greater than a pre-defined threshold. We used 5-pixel GPE as the threshold.

Table 4.1: Global positional error (GPE) measures on synthetic datasets

Datasets Max. Min. Mean Std. dev. False positives Figure 4.2 (a) 1.139 0.000 0.359 0.274 0 Figure 4.2 (b) 1.218 0.000 0.534 0.343 0 Figure 4.2 (c) 18.439 0.000 0.448 0.976 0 Figure 4.2 (d) 11.180 0.000 0.427 0.707 0 Figure 4.2 (e) 9.394 0.000 0.724 1.058 0 Figure 4.2 (f) 2.703 0.000 0.435 0.344 0 Figure 4.2 (g) 6.839 0.000 0.484 0.506 0 Figure 4.2 (h) 24.166 0.000 0.486 0.882 0 Figure 4.2 (i) 13.113 0.000 0.421 0.500 0 Average 9.799 0.000 0.480 0.621 0

Table 4.1 shows the GPE measures and the false positive error measures for the synthetic datasets. As shown in the table, the mean GPE errors were all less than 1 pixel (the average GPE error for all datasets was about 0.48 pixels) and 0 false positive errors for all synthetic datasets. However, the G-snake produced somewhat high maximum GPE errors for some of the synthetic datasets. The high maximum GPE errors were caused by over-segmenting of G-snake (due to the noise), overlapping of loop structures, and loop structures that were 40 narrow and very close to each other. For example, in Figure 4.2 (c), the high maximum GPE was caused by over-segmenting of G-snake due to the noise near the end of the loop structure at the bottom left on the dataset. In Figure 4.2 (e), the high maximum GPE was caused by overlapped loop structures. In Figures 4.2 (h) and (i), the high maximum GPE was caused by narrow loops that are very close to each other.

4.2 Real Corona Image Experiment

We now review the effectiveness of G-snake for real coronal images. The real coronal images are shown in Figure 4.3 (a) – (e). We note that these coronal images were also used in [10, 18]. The results of G-snake for these images are shown in Figure 4.4 (a) – (e). The orange curves in each figure represent the segmented loop structures by the G-snake. As shown in the figure, the G-snake produced fairly good results of segmenting the coronal loop structures. To measure the accuracy of the G-snake on real images, we have used the manually- segmented loop structures as gold standard (since we do not know the actual position of the real loop structures) and compared the gold standard with the G-snake’s results. The manual segmentation involved selecting coronal loop points manually and then using them as the control points in B-spline fittings. This B-spline-fitting-based manual segmentation has also been used in [10]. The results of the manual segmentation for the real coronal images shown in Figure 4.4 (a) – (e) are shown in Figure 4.5 (a) – (e). Two experts in coronal loop segmentation agreed that results in Figure 4.5 are very good manual segmentation results. The red curves in each figure represent the manually-segmented loop structures. For the real image testings, we measured the global positional errors (GPE) and the false positive errors. 41

(a) Original TRACE coronal image (May 19, 1998, 22:21 UT, in the 171 A˚ wavelength. The displayed region covers the pixel ranges from 200 to 1000 in the x-axis and pixel ranges from 150 to 874 in the y-axis of the original 1024 × 1024 image.)

(b) Original TRACE coronal image (March 13, 2001, 00:13 UT, in the 171 A˚ wavelength. The displayed region covers the pixel ranges from 1 to 824 in the x-axis and pixel ranges from 90 to 1024 in the y-axis of the original 1024 × 1024 image.)

Figure 4.3: Real corona images 42

(c) Original TRACE coronal image (March 20, 2000, 04:53 UT, in the 171 A˚ wavelength. The displayed region covers the pixel ranges from 100 to 1024 in the x-axis and pixel ranges from 1 to 594 in the y-axis of the original 1024 × 1024 image.)

(d) Original TRACE coronal image (April 01, 2003, 06:24 UT, in the 171 A˚ wavelength. The displayed region covers the pixel ranges from 1 to 1024 in the x-axis and pixel ranges from 1 to 1024 in the y-axis of the original 1024 × 1024 image.)

Figure 4.3: (Continued) 43

(e) Original TRACE coronal image (May 15, 2000, 20:51 UT, in the 171 A˚ wavelength. The displayed region covers the pixel ranges from 1 to 1024 in the x-axis and pixel ranges from 1 to 1024 in the y-axis of the original 1024 × 1024 image.)

Figure 4.3: (Continued) 44

(a)

(b)

Figure 4.4: Results of G-snake overlaid (in orange) on the real images 45

(c)

(d)

Figure 4.4: (Continued) 46

(e)

Figure 4.4: (Continued) 47

(a)

(b)

Figure 4.5: Manual segmentation overlaid (in red) on real images 48

(c)

(d)

Figure 4.5: (Continued) 49

(e)

Figure 4.5: (Continued) 50 Table 4.2: Global positional error (GPE) and false positive error measures on real corona images

Images Max. Min. Mean Std. dev. False positives Figure 4.4 (a) 23.707 0.000 0.986 1.327 6 Figure 4.4 (b) 28.089 0.000 1.233 1.723 28 Figure 4.4 (c) 13.602 0.000 0.890 0.956 5 Figure 4.4 (d) 20.616 0.000 1.113 1.749 38 Figure 4.4 (e) 27.203 0.000 1.180 1.686 20 Average 22.643 0.000 1.080 1.488 19.4

Table 4.2 shows the GPE measures and the false positive error measures for the 5 real coronal images of Figures 4.3 (a) – (e). As shown in the table, the mean GPE errors for the real images were all about 1 pixel (the average GPE error was about 1.08 pixels) with the standard deviations all less than 2 pixels. For some of the real images, the G-snake produced somewhat high false positive errors (e.g., for Figures 4.4 (b), (d), and (b)). These false positive errors are mostly due to the noise and the non-loop structures (e.g., moss structures) in the background. 51

CHAPTER 5

CONCLUSION AND FUTURE WORK

In this thesis, we have developed a new automated coronal loop segmentation technique (i.e., the Gaussian-snake) based on the coronal loop properties. The technique exploits the Gaussian-like cross-sectional intensity profiles and the directionality cohesion property of the coronal loop structures. Through evaluation of the technique we have shown that our technique can provide consistent and reasonable adequate results of segmenting the coronal loop structures in the images of the solar corona. In this chapter, we summarize our contribution and provide suggestions for future work.

5.1 Contribution

First, the G-snake is the first approach that utilizes a type of snake for segmenting loop structures in solar coronal images. We do not know of any previous work on automated segmentation of the coronal loop structures using snake-based approaches. Second, the G-snake introduced new energy terms specific to coronal loop structure seg- mentation. The new energy terms (i.e., the Gaussian and the directional-cohesion terms of 52 Section 3.2.2) exploit the coronal loop properties for more accurate and consistent segmen- tation results in the snake’s minimization process. Third, we introduced a new method to initialize the G-snake’s position (Section 3.2.3). This method allows the G-snake’s initial position to be on the coronal loop structures that permits a more stable G-snake coronal loop segmentation.

5.2 Future Work

As mentioned in Section 4.1, the G-snake can produce somewhat high GPE errors due to the noise, overlapping of loop structures, and loop structures that were narrow and very close to each other. In addition, it can produce somewhat high false positive errors due to the noise and the solar moss in the background. We believe that G-snake could be improved in a couple of ways. It is worth exploring if segmentation results can be improved if other techniques are used to remove non-loop structures. (We used a 3×3 median filtering and 3×3 low-pass filtering.) For example, other image processing methods (e.g., applying different filtering schemes) might help the better-segmentation of the coronal loops. Another possible way to improve the G-snake is to utilize varying-sized image window for the Gaussian curve fitting and for the directionality image computation. This may allow the G-snake to segment coronal loops with various width. Moreover, G-snake might be able to segment loop structures that are narrow and close to each other. In addition, incorporating Radon’s generalized transformation in the coronal loop linking process, as suggested in Raghupathy’s improvement [21] for Steger’s curvilinear structures detection [19], may be possible. G-snake can be further studied by using the Sensitive Analysis (SA) [43]; SA can be used to summarize the effect of changes qualitatively and/or quantitatively by systematically changing the parameters to the input datasets. For example, the synthetic loop structures generated based on the dipole model (as discussed in Section 4.1) can be manually shifted 53 and then tested by the G-snake on the shifted loop structures. 54

BIBLIOGRAPHY

[1] A.K. Hrechak and J.A. McHugh, “Automated Fingerprint Recognition Using Structural Matching,” Pattern Recognition, Vol. 23 (8), 1990, pp. 893-904.

[2] L. Coetzee and E.C. Botha, “Fingerprint Recognition in Low Quality Images,” Pattern Recognition, Vol. 26 (10), 1993, pp. 1441-1460.

[3] A.M. Bazen and S.H. Gerez, “Segmentation of Fingerprint Images,” in Proceedings of Workshop on Circuits, Systems and Signal Processing, Veldhoven, Netherlands, 2001, pp. 276-280.

[4] M.A. Turk and A.P. Pentland, “Face Recognition Using Eigenfaces,” in Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Lahaina, Maui, Hawaii, 1991, pp. 586-591.

[5] L. Wiskott, J.M. Fellous, N. Kruger, and C. von der Malsburg, “Face Recognition by Elastic Bunch Graph Matching,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 19 (7), 1997, pp. 775-779.

[6] R. Chellappa, P. Sinha, and P.J. Phillips, “Face Recognition by Computers and Hu- mans,” IEEE Computer, Vol. 43 (2), 2010, pp. 46-55.

[7] T. McInerney and D. Terzopoulos, “Deformable Models in Medical Image Analysis: A Survey,” Medical Image Analysis, Vol. 1 (2), 1996, pp. 91-108. 55 [8] D.L. Pham, C. Xu, and J.L. Prince, “Current Methods in Medical Image Segmentation,” Annual Review of Biomedical Engineering, Vol. 2, 2000, pp. 315-337.

[9] S.M. Pizer, P.T. Fletcher, S.Joshi, A. Thall, J.Z. Chen, Y. Fridman, D.S. Fritsch, A.G. Gash, J.M. Glotzer, M.R. Jiroutek, C. Lu, K.E. Muller, G. Tracton, P. Yushkevich, and E.L. Chaney, “Deformable M-Reps for 3D Medical Image Segmentation,” International Journal Computer Vision, Vol. 55, 2003, pp. 85-106.

[10] J.K. Lee, T.S. Newman, and G.A. Gary, “Oriented Connectivity-based Method for Segmenting Solar Loops,” Pattern Recognition, Vol. 39 (2), 2006, pp. 246-259.

[11] C.J. Schrijver, A.M. Title, T.E. Berger, L. Fletcher, N.E. Hurlburt, R.W. Nightingale, R.A. Shine, T.D. Tarbell, J. Wolfson, L. Golub, J.A. Bookbinder, E.E. DeLuca, R.A. McMullen, H.P. Warren, C.C. Kankelborg, B.N. Handy, and B. De Pontieu, “A New View of the Solar Outer Atmosphere by the Transition Region and Coronal Explorer,” Solar Physics, Vol. 187, 1999, pp. 261-302.

[12] D.H. Hathaway, “Magnetism — The Key to Understanding the Sun,” http:// solarscience.msfc.nasa.gov/the_key.shtml, accessed on April 19, 2010.

[13] A. Samal and P. Iyengar, “Automatic Recognition and Analysis of Human Faces and Facial Expressions: A Survey,” Pattern Recognition, Vol. 25 (1), 1992, pp. 65-77.

[14] G.A. Gary, “ Beta Above a Solar Active Region: Rethinking the Paradigm,” Solar Physics, Vol. 203, 2001, pp. 71-86.

[15] T.E. Berger, B. De Pontieu, L. Fletcher, C.J. Schrijver, T.D. Tarbell, and A.M. Title, “What is Moss?,” Solar Physics, Vol. 190, 1999, pp. 409-418.

[16] L.H. Strous, Loop Detection, http://www.lmsal.com/~aschwand/stereo/2000_ easton/cdaw.html, accessed on April 12, 2010. 56 [17] L. Carcedo, D. Brown, A. Hood, T. Neukirch, and T. Wiegelmann, “A Quantitative Method to Optimise Line Fitting of Observed Coronal Loops,” Solar Physics, Vol. 218, 2003, pp. 29-40.

[18] J.K. Lee, T.S. Newman, and G.A. Gary, “Dynamic Aperture-based Solar Loop Seg- mentation,” in Proceedings of 7th IEEE Southwest Symposium on Image Analysis and Interpretation, Denver, 2006, pp. 91-94.

[19] C. Steger, “An Unbiased Detector of Curvilinear Structures,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 20 (2), 1998, pp. 113-125.

[20] M. Smith, 2005, http://twiki.mssl.ucl.ac.uk/twiki/bin/view/SDO/ LoopRecognition, accessed on May 16, 2010.

[21] K. Raghupathy, Curve Tracing and Curve Detection in Images, M.S. Thesis, Depart- ment of Computer Science, Cornell University, 2004.

[22] S. Sellah and O. Nasraoui, “An Incremental Hough Transform for Detecting Ellipses in Image Data Streams,” in Proceedings of IEEE International Conference on Tools with Artificial Intelligence, Vol. 2, 2008, pp. 45-48.

[23] P.V.C. Hough, “Method and Means for Recognizing Complex Patterns,” U.S. Patent 3,069,654, December 1962.

[24] R.O. Duda and P.E. Hart, “Use of the Hough Transformation to Detect Lines and Curves in Pictures,” Communications of the ACM, Vol. 15 (1), 1972, pp. 11-15.

[25] O. Nasraoui and C. Rojas, “Robust Clustering for Tracking Noisy Evolving Data Streams,” in Proceedings of SIAM International Conference on Data Mining, Bethesda, Maryland, 2006, pp. 80-99.

[26] N. Durak, O. Nasraoui, and J. Schmelz, “Coronal Loop Detection from Solar Images,” Pattern Recognition, Vol. 42 (11), 2009, pp. 2481-2491. 57 [27] M.J. Aschwanden, “A Code for Automated Tracing of Coronal Loops Approaching Visual Perception,” Solar Physics, Vol. 262 (2), 2010, pp. 399-423.

[28] M.J. Aschwanden, J.K. Lee, G.A. Gary, M. Smith, and B. Inhester, “Comparison of Five Numerical Codes for Automated Tracing of Coronal Loops,” Solar Physics, Vol. 248, 2008, pp. 359-377.

[29] R.T.J. McAteer, P. Kestener, A. Arneodo, and A. Khalil, “Automated Detection of Coronal Loops using a Wavelet Transform Modulus Maxima Method,” Solar Physics, in press.

[30] A. Arneodo, N. Decoster, and S.G. Roux, “A Wavelet-based Method for Multifractal Image Analysis. I. Methodology and Test Applications on Isotropic and Anisotropic Random Rough Surfaces,” The European Physical Journal B, Vol. 15 (3), 2000, pp. 567-600.

[31] R.A. McLaughlin, “Randomized Hough Transform: Better Ellipse Detection,” Digital Signal Processing Applications, Vol. 1, 1996, pp. 409-414.

[32] R.A. McLaughlin, “Randomized Hough Transform: Improved Ellipse Detection with Comparison,” Pattern Recognition Letters, Vol. 19 (3-4), 1998, pp. 299-305.

[33] M. Kass, A. Witkin, and D. Terzopoulos, “Snakes: Active Contour Models,” Interna- tional Journal of Computer Vision, Vol. 1 (4), 1987, pp. 321-331.

[34] D.J. Williams and M. Shah, “A Fast Algorithm for Active Contours and Curvature Estimation,” Computer Vision, Graphics and Image Processing, Vol. 55 (1), 1992, pp. 14-26.

[35] A.A. Amini, T.E. Weymouth, and R.C. Jain, “Using Dynamic Programming for Solving Variational Problems in Vision,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 12 (9), 1990, pp. 855-867. 58 [36] K. Levenberg, “A Method for the Solution of Certain Non-linear Problems in Least Squares,” Quarterly of Applied Mathematics, Vol. 2, 1944, pp. 164-168.

[37] D.W. Marquardt, “An Algorithm for Least Squares Estimation of Nonlinear Parame- ters,” Journal of the Society for Industrial and Applied Mathematics, Vol. 11 (2), 1963, pp. 431-441.

[38] R.O. Duda, P.E. Hart, and D.G. Strok, Pattern Classification, 2nd Edition, Wiley, New York, 2000.

[39] R. Plonesy and R.E. Collin, Principles and Applications of Electromagnetic Fields, McGraw-Hill, New York, 1961.

[40] T. Magara and D. W. Longcope, “3-Dimensional Evolution of a Magnetic Emerging into the Solar Atmosphere,” American Geophysical Union, 2002, pp. A441.

[41] J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, and R.L. Phillips, Introduction to Computer Graphics, Addison-Wesley, 1994.

[42] Y. Wang, E.K. Teoh, and D. Shen, “Lane Detection using B-Snake,” in Proceedings of IEEE International Conference on Information, Intelligence and Systems, Washington, D.C., 1999, pp. 438-443.

[43] A. Saltelli, K. Chan, and E.M. Scott, Sensitivity Analysis, John Wiley and Sons, New York, 2000.