Keywords

1 Introduction

Medical image processing is a concerning problem in the recent period. Some aspects are concerned such as: enhancing the quality – denoising and deblurring, object detection, contours, segmentation, etc. In case of contours, the boundary is detected by many methods to base on the object detection. After detecting, the active contour model continues to show the size and location of objects. In medicine, the contour detecting is very important because that is the basis for the doctor to make the diagnosis and treatment protocols. The faster and more accurate the treatment is, the better chance of living the patients have.

In the past, there are many algorithms which are proposed for object detection, such as: Sobel [3], Canny [2], Cuckoo Search [9], transform [7], etc. In these methods, the authors proposed the process for edge detection including: remove noise and make the input images smooth. They are very useful for other latter proposed methods which improve the quality of them. The curves are the idea of latter methods, and a prominent representative is B-spline [46]. B-spline is used to increase the smoothing steps. After the object detection step, the boundaries are described by Otsu method [14], active contour model [5, 6, 15], gradient vector flow [16], etc. Their results are not only in natural images but also in medical images as [17, 18, 20]. The combination between them is also very neccesary [5, 7, 18].

We can say that active contour model, Snake, is one of the popular methods used in recent years. The previous authors proposed the Snake processing based on the transform, such as: wavelet transform [19, 20] or new generation of wavelet transform [18, 21]. In [20], the idea is to use self-affine mapping for weak boundaries in wavelet transform. That is the results of the improving quality from [19] also in wavelet domain.

In this paper, we propose a method to detect the objects and to show their contours in medical images. We use curvelet transform for remove noise and detect in objects. Then, we use B-spline for smoothing steps and also detect the objects in curvelet domain. When we have the object detection, we reconstruct and call it 1. We continue with period 2 which uses self-affine Snake to show the boundaries of output object detection in the previous step. The structure of this paper is as follows: the basis of curvelet transform, B-spline curves and active contour model are presented in Sect. 2. The proposed method is described clearly in Sect. 3. Our experiments and results are accentuated in Sect. 4, and Sect. 5 is the conclusions.

2 Curvelet and B-Spline Curves Model

2.1 Curvelet Transform

Curvelet is proposed by [12], this is the improvement from the ridgelet transform [11]. It is a popular method of representing edges and other singularities along curves. Curvelets decompose the input images into subbands with which each subband is a curve with width \( \approx \) length2. Then, each subband is analyzed by a local ridgelet transform [13]. The subbands in curvelet domain have the nonstandard form [22s, 22s+2]. The basic process of the digital realization for curvelet transform is given as follows [13]:

  1. (i)

    Subband Decomposition. The image \( f \) is decomposed into subbands:

    $$ f \mapsto (P_{0} f,\Delta_{1} f,\Delta_{2} f, \ldots ) $$
    (1)
  2. (ii)

    Smooth Partitioning. Each subband is smoothly windowed into “squares” of an appropriate scale (of sidelength ~2−s):

    $$ \Delta_{s} f \mapsto (w_{Q} \Delta_{s} f)_{{Q \in Q_{S} }} $$
    (2)

    where \( w_{Q} \) is a collection of smooth window localized around dyadic squares:

    $$ Q = [k_{1} /2^{s} ,(k_{1} + 1)/2^{s} ] \times [k_{2} /2^{s} ,(k_{2} + 1)/2^{s} ] $$
    (3)
  3. (iii)

    Renormalization. Each resulting square is renormalized to unit scale

    $$ g_{Q} = (T_{Q} )^{ - 1} (w_{Q} \Delta_{S} f),\,Q \in Q_{S} $$
    (4)
  4. (iv)

    Ridgelet Analysis. Each square is analyzed via the discrete ridgelet transform.

2.2 B-Spline for Enhancing the Quality of Smoothing

In curves, a Bézier curve is a parametric curve and that is used popularly with model smooth curves in the previous, so is a B-spline. B-spline curve is similar to Bézier curve, but it gives more information. From the set of n + 1 control points, knot vector of m + 1 knots and a degree p. But it must satisfy: m = n + p + 1. The B-spline curve of degree p (N i, u (u)) defined by these control points and knot vector U is [4]:

$$ C\left( u \right) = \sum\nolimits_{i = 0}^{n} {N_{i, p} \left( u \right)P} $$
(5)

where n + 1 control points P0, P1, …, Pn and a knot vector U = {u0, u1, …, um}.

B-spline with the smoothing function \( \beta_{{2^{ - 1} }}^{n + 1} \) and \( \beta_{{2^{ - 1} }}^{n + 2} \) uses 2−1 level.

$$ \psi^{n} (x) = \frac{d}{dx}\beta_{{2^{ - 1} }}^{n + 1} (x) = 4(\beta^{n + 1} )^{(1)} (2x) $$
(6)
$$ \text{or}\quad \quad \quad \psi^{n} (x) = \frac{{d^{2} }}{{dx^{2} }}\beta_{{2^{ - 1} }}^{n + 2} (x) = 8(\beta^{n + 2} )^{(2)} (2x) $$
(7)

where n is the order of wavelet transform.

We define the desirable geometric characteristics of B-Spline curves and surfaces of degree p is defined as [4]:

$$ N_{i, 0} \left( u \right) = \left\{ {\begin{array}{*{20}c} {0 \,if\, u_{i} \le u \le u_{i + 1} } \\ {1, \,otherwise} \\ \end{array} } \right. $$
(8)

2.3 Active Contour Model

Active contour model with another name is snakes [5, 6, 15] which bases on an energy minimizing. In [15], the position of a snake parametrically by v(s) = (x(s), y(s)) and energy functional as:

$$ E_{snake}^{*} = \int\limits_{0}^{1} {E_{snake} (v(s))ds} = \int\limits_{0}^{1} {E_{\text{int}} } (v(s)) + E_{image} (v(s)) + E_{con} (v(s))ds $$
(9)

where Eint represents the internal energy of spline due to bending, Eimage gives rise to the image forces, and Econ gives rise to the external constraint forces. Each element of (9) can be written:

$$ E_{\text{int}} = (\alpha (s)|v_{s} (s)|^{2} + \beta (s)|v_{ss} (s)|^{2} )/2 $$
(10)
$$ E_{con} = \frac{1}{2}(\alpha (s)|v_{s} (s)|^{2} ) $$
(11)

where \( \alpha (s) \) and \( \beta (s) \) are user-defined weights. The \( \alpha (s) \) is a large weight for the continuity term penalizes. The distance between points in the contour is changed by \( \alpha (s) \). And \( \beta (s) \) is for the smoothing term of the contour. The energy of the images is the presentation of the features of the images. These features are calculated by [15]:

$$ E_{image} = w_{line} E_{line} + w_{edge} E_{edge} + w_{term} E_{term} $$
(12)

where wline, wedge, wterm are weights of these salient features.

3 Describing Contours by the B-Spline and Active Contour Model in Curvelet Domain

Snake is one of the present contour methods by energy reducing. In recent methods, we have many ways to reduce the energy functions. In the previous methods, B-spline is used to combine with snake as [5] or single for edge detection [4]. In [19], the authors use self-affine snake as a new parametric for active contour in wavelet transform. They continued to improve in [20]. That is an example for using the parametric for active contour in transforms. In fact, the objects in medical images have many noises in them because of many reasons [10]. This is a difficult problem for object detection and then also for active contour. Curvelet transform is popular in denoising images [10, 13] because of the represented curves. In [18], the authors are proposed to segment in curvelet domain which includes two steps: the first step is the de-speckle noise from speckle images and the second step is the edge curves. In [21], curvelet continued to combine with snakes for segmentation. It means that curvelet is very useful for active contour or segmentation in medical images. Our idea is to use the transform in the proposed method because their aptitudes remove noise and detect objects in the detection process. We divide the proposed method into two periods which include: period 1 is the object detection in curvelet domain by combining between ridgelet in each subband of curvelet transform and B-spline for smoothing step; period 2 is to use self-affine Snake for active contour. This process is presented clear in Fig. 1.

Fig. 1.
figure 1

Process flow of the proposed method.

In period 1, the proposed method begins with the decomposition into curvelet domain. The input of this period is the medical images, we use curvelet transform for denoising the image, curvelet’s process is as follows:

  1. (1)

    apply the à trous algorithm with scales and set b 1  = b min

  2. (2)

    for j = 1, …, j do

    1. a.

      partition the subband w j with a block size b j and apply the digital ridgelet transform to each block;

    2. b.

      if j modulo 2 = 1 then b j+1  = 2b j ;

    3. c.

      else b j+1  = b j

The side length of the localizing windows is doubled at every other dyadic subband. In this step, we use threshold T for denoising:

$$ T = \frac{1}{{2^{j - 1} }}\left( {\frac{\sigma }{\mu }} \right)M $$
(13)

where j is number of level at which the shrinkage is applied, \( \sigma \) is the standard deviation, M is the median and \( \mu \) is the mean of absolute wavelet coefficients. In here, we use the number of decomposition levels is 5 and 32 directions. After this step, the input medical images had become medical images denoising.

The proposed method continues with smoothing step by the B-spline curves. The below Eq. (14) is the other cases of (8), as follows:

$$ N_{i,p} = \frac{{u - u_{i} }}{{u_{i + p} - u_{i} }}N_{i,p - 1} (u) + \frac{{u_{i + p + 1} - u_{i} }}{{u_{i + p + 1} - u_{i + 1} }}N_{i + 1,p - 1} (u) $$
(14)

The distance measure is calculated to base on the 8-connected neighborhood. Then, the smooth curves look like straight in sub-images. In each sub-image, a local ridgelet transform applies in its with multiple scales. The result is the medical images denoising. We call this images as I and with cJ is a coarse or smooth of the image I, wj is the scale details at 2−j. We have Eq. (15) for spatial partitioning of each block:

$$ I(x,y) = c_{J} (x,y) + \sum\limits_{j = 1}^{J} {w_{j} } (x,y) $$
(15)

Based on the coefficients value which calculates in curvelet domain to locate the around edges and in the right directional of blocks. At the end of period 1, the output of this process is the medical image which is detected the location, size of objects. Objects have the boundaries and continue to be improved by self-affine Snake in the next period. In period 2, the process include five steps:

Firstly, the extracting the self-affine maps. The extracting step includes two sub-steps. From some M section of domain, the allocation method will perform the parameters of maps include: ri, si, ti, pi, and qi using a block matching algorithm.

Secondly, ri is to form domain, ri = [si, ti] is the vector of center point. A matching cose is evaluated by:

$$ C = \sum {_{{x \in M_{i} }} } \left| {g(x) = g(m_{i} (x))} \right| $$
(16)

where g(x) is the intensity values for all images. The purpose of this step is the selected values from the minimum cost – this is the results of the computing forces for each scale.

Thirdly, the combining forces are to compute the sefl-affine forces which are difference between wavelet scales. The self-affine force is calculated in each pixel a = (x, y) in the decomposition domain by the values of the indicated Gaussian potential forces. The Gaussian potential forces values are used to improve the boundaries of period 1.

Fourthly, self-affine forces are applied for all image pixels that finished all forces. The boundary is moved by the sum of Eqs. (10) and (11). It means that the intensity values can be decreased or increased by this case. Equation (12) is calculated in here by the boundaries values which are given by self-affine forces.

Finally, the Gaussian potential force is given from the combining forces is the key for the increasing of capture range. This is the number of coefficient scales which uses in reconstruction steps of curvelet transform. If we call n is the number of curvelet scales and L is the distance which is calculated to base on the 8-connected neighborhood, we will the number of curvelet scales be:

$$ 2^{n} \text{x} \, \text{R} \, > \, \text{L} \, \text{and} \, \text{n} \, > \, \log_{2} \left( {\text{L}/\text{R}} \right) $$
(17)

At the end of period 2, the output is the boundaries which have improved by the self-affine snake. And the continued step is the reconstruction the output images from curvelet domain.

4 Experiments and Results

Medical images have not many objects in each image because of the direction from the doctors. The boundary around each object is very necessarily clear. As mentioned in the previous section, we propose a method for object detection and improve the quality of boundaries from medical images. In the proposed method, we use the features of curvelet transform for denoising medical images and B-spline for smoothing images. That is the prepared step for the object detection in curvelet domain. In this paper, we use 5 levels for decomposition of the input medical images into curvelet domain. Then, we apply threshold to remove noise details. This is the improvement process for medical images which have weak objects. In other methods of object detection, the removing noise uses Gaussian filter to remove. However, we herely propose curvelet because it is the best choice of the represented curves. B-spline is used for smoothing steps to prepare for the detection in curvelet domain. This is the end of period 1 in our algorithm. In period 2, the boundaries given from period 1 are improved by the self-affine snake.

The results of our proposed method are compared with the other methods such as: Otsu method [14] and curvelet-based geodesic snake method [21]. We have many edges and clear contour more than other methods. Our dataset is the medical images collected in many hospitals. There are more than 1000 medical images, and in many sizes: 256 × 256, 512 × 512, 1024 × 1024. We test many medical images from this dataset. In here, we show some cases when we test and compare them. In Fig. 2, we test the medical image which has a strong object.

Fig. 2.
figure 2

The results of boundaries detection by other methods with strong object. (a) The strong object in the original medical image. (b) Boundaries detection by Otsu method [14]. (c) Boundaries detection by curvelet-based geodesic snake method [21]. (d) Boundaries detection by the proposed method.

In this case, Fig. 2(a) is the original medical image. The result of Otsu method is Fig. 2(b), the result of curvelet-based geodesic snake method is Fig. 2(c) and (d) is the result of our proposed method. We can see that the boundaries detected by the proposed method is better than the result in Fig. 2(b) and (c).

In Fig. 3, we test the medical image which has a weak object. A weak object is an object of which boundaries are blurred and noised. In this case, we use Gaussian noise and Gaussian blur added to medical images with the variance noise is 0.00005 and the values of point spread function of Gaussian blur. The reason of our selection is Gaussian is the plus noise and blur into pixels of medical images. The plus noise and blur is popular in medical images.

Fig. 3.
figure 3

The results of boundaries detection by other methods with weak object. (a) The weak object in a noised and blurred medical image. (b) Boundaries detection by Otsu method [14]. (c) Boundaries detection by curvelet-based geodesic snake method [21]. (d) Boundaries detection by the proposed method.

The result of Otsu is Fig. 3(b), curvelet-based geodesic snakes method is Fig. 3(c). We see that there are clearer boundaries by our method, Fig. 3(d), than by other methods.

From the results from Figs. 2, 3 and many other test cases, we conclude that the results of the proposed method are better than Otsu method [14] and curvelet-based geodesic snake method [21] in two cases: strong object and weak object. Our experiment is the combination between transform and active contour model for presenting the boundaries. Especially with medical images, the transform is useful for object detection and active contour model. The coefficient values of decomposition step of transform are also given the neccesary values for showing the contours.

5 Conclusions

Active contour model is used widely in boundaries detection. So, the object detection is a important step for presented contours. In this paper, we propose a method for object detection and active contour in curvelet domain. This idea is the combination between the transform and self-affine Snake. In decomposition domain, although each object will be strong or weak the object will also be detected and improved the quality of boundaries. The proposed method includes two periods: object detection in curvelet domain by denoising with curvelet and smoothing with B-spline, self-affine Snake for active contour model. The results of our algorithm have tested in medical images and compared with other methods such as: Otsu method [14], and curvelet-based geodesic snake method [21]. The compared results make known that the proposed method is better than the other ones.