医学图像处理基础

医学图像处理技术

图像二值化以及最优二值化方法

图像的二值化方法来源于图像的灰度直方图,它是图像灰度级分布的统计,反应图像每种灰度出现的频率。
所谓的图像的二值化是将确定图像的阈值,将图像分为前景和背景。

图像的卷积(Convolution)和相关(Correlation)

给定输入图片$f(x, y)$,核$w(a, b)$

  • 图像的卷积运算是使目标与目标之间的差距变大。
    卷积运算可以表示为如下的公式:
    $$f*w = \sum_{(a, b)\in w, (x-a, y-b)\in f}f(x-a, y-b)w(a, b)$$
    使用numpy实现简单的二维卷积运算:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    def conv(image, kernel):
    """ An implementation of convolution filter.
    Args:
    image: numpy array of shape (Hi, Wi)
    kernel: numpy array of shape (Hk, Wk)

    Returns:
    out: numpy array of shape (Hi, Wi)
    """
    Hi, Wi = image.shape
    Hk, Wk = kernel.shape
    out = np.zeros((Hi, Wi))
    flip_kernel = np.flip(np.flip(kernel, axis=0), axis=1)
    delta_h = int((Hk-1)/2)
    delta_w = int((Wk-1)/2)
    for image_h in range(delta_h, Hi-delta_h):
    for image_w in range(delta_w, Wi-delta_w):
    out[image_h][image_w] = np.sum(flip_kernel*image[image_h-delta_h:image_h+delta_h+1, image_w-delta_w:image_w+delta_w+1])
    return out
  • 图像的相关运算与卷积运算不同之处在于,相关运算不需要将核翻转。
    $$f\bigotimes w = \sum_{(a, b)\in w, (x+a, y+b)\in f}f(x+a, y+b)w(a, b)$$
    有时候我们利用卷积运算可以得到图像的边缘:Sobel operator mask 和 Prewitt operator masks.

图像除噪

  • 高斯滤波

  • 中值滤波

形态学

  • Dilation
    扩张放大图像的前景
  • Erosion
    缩小图像的前景
  • Opening Operation
    先进行Erosion,再做Dilation,可以去除不连续的像素点。
  • Closing Operation
    先做Dilation,后做Erosion,对不连续的像素点进行填埋。
非常感谢各位老板投喂!