案例背景
数学形态学图像处理应用广泛,可以用于图像去噪、特征提取、边缘检测、图像分割、 形状识别、纹理分析、图像恢复与重建、图像压缩等领域。数学形态学图像处理的基本思 想是构建具有--定形态的结构元素去匹配和提取图像中对应形状的位置,进而达到对图像 进行分析和识别的目的。数学形态学图像处理以集合论为基础,通过结构化处理可以简化 图像数据,保持图像的基本形状特征,消除不必要的结构。常用的数学形态学运算有4个: 膨胀、腐蚀、开启和闭合,都可以应用于二值图像和灰度图像。
在临床实验中,角膜中央厚度定位及测量的关键和前提是进行眼前节组织OCT图像 上下角膜的边缘检测。如果使用传统的边缘检测算子来处理眼前节组织OCT图像,则容 易产生误检测、假边缘等缺点,使用数学形态学进行边缘检测可以克服传统算法的缺点, 取得较好的效果2)。本案例采用多尺度图像形态学处理的方法来提取眼前节组织OCT图像 的边缘,核心算法采用数学形态学进行处理。
理论基础简介
数学形态学图像处理以集合论为理论基础,对图像进行形态学变换实质上是一种针对 集合的处理过程。形态学运算用于表示物体或形状的集合与形态学算子结构的相互作用, 并且形态学算子结构的形状决定了形态学运算所匹配目标的形状信息。因此,对图像进行 数学形态学图像处理就是通过在图像中移动一个结构元素,并将该结构元素与对应的图像 块矩阵进行交、并等集合运算,得到处理结果矩阵。数学形态学图像处理的基本形态运算 是腐蚀和膨胀,然后可以延伸到开启和闭合。
假设f(x,y)为输入图像,g(i,j) 为结构元素,⊕和θ分别表示形态学运算中的膨胀 运算符号和腐蚀运算符号,则可以得到灰度膨胀运算和灰度腐蚀运算如下叫。
灰度膨胀运算:f⊕g=max[f(x−i,y−j)+g(i,j)]
灰度腐蚀运算:fOg=min[f(x+i,y+j)−g(i,j)]
假设数字图像矩阵为Uint8 类型(范围为0~255),则根据形态学运算的特点,膨胀 运算将超出边界的部分指定为图像数据类型最小值,即超出灰度图像的边界像素值为0; 腐蚀运算将超出边界的部分指定为图像数据类型最大值,即超出灰度图像的边界像素值为 255。
多尺度形态学通过选定形态结构元素的类型及尺度来实现,如对图像应用某结构元素 进行膨胀运算,其尺度的选取可根据不同的情况来定。-般而言,随着选取的结构元素尺, 度的增大,计算量也会增加,甚至可能会对图像自身的几何形状产生影响,进而造成形态 处理结果不准确。适当地选择小尺度(- -般取2~5)的结构元素,可以在一定程度上提高 形态运算的效率及准确率。
因此,通过应用不同尺度的结构元素进行边缘检测,再通过加 权融合的思想来整合检测到的边缘,可以在一-定程度上降低图像噪声的影响,进而提高边 缘检测的精度引。
程序设计
3.1 多尺度边缘
图像边缘是指像素周围灰度值发生急剧变化的位置集合,是图像的基本特征之一。图 像边缘一般存在于目标、背景和区域之间,因此边缘提取是图像分割过程中经常采用的关 键步骤之一。图像边缘根据样式大致可以分为两种: - -种是阶跃状边缘,该类边缘两边像 素的灰度值明显不同,呈现阶跃样式;另一-种是屋顶状边缘,该类边缘处于灰度值由小到 大再到小的峰值转折点处,呈现屋顶样式。因此,根据多尺度边缘检测的算法流程,编写 函数Multi_ Process 接收图像矩阵、形态学算子、尺度参数,并通过图像形态学变换进行图 像边缘的提取,函数代码如下所示。
function [Gi, ng] = Multi_Process(I, g, n)
if nargin < 3
n = 6;
end
ng = g;
for i = 1:n
ng = imdilate(ng, g);
end
Gi1 = imopen(I, ng);
Gi1 = imdilate(Gi1, ng);
Gi2 = imclose(I, ng);
Gi2 = imerode(Gi2, ng);
Gi = imsubtract(Gi1, Gi2);
3.3.2主处理函数
根据前面介绍的相关理论,本实验默认采用5个不同方向的结构元素来进行形态学变 换。因此,为了方便地进行图像边缘提取,可编写主处理函数Main_ Process, 通过接收图 像矩阵、尺度值来作为输入参数,调用多尺度边缘提取函数Multi_ Process 和融合权值计算 函数Coef进行处理,最后通过调用图像加权融合函数Edge_One得到边缘融合结果并返回。 具体代码如下所示。
function result = Main_Process(Img, n)
if ndims(Img) == 3
I = rgb2gray(Img);
else
I = Img;
end
g1 = [0 1 0
0 1 0
0 1 0];
g2 = [0 0 0
1 1 1
0 0 0];
g3 = [0 0 1
0 1 0
1 0 0];
g4 = [1 0 0
0 1 0
0 0 1];
g5 = [0 1 0
1 1 1
0 1 0];
Gi1 = Multi_Process(I, g1, n);
Gi2 = Multi_Process(I, g2, n);
Gi3 = Multi_Process(I, g3, n);
Gi4 = Multi_Process(I, g4, n);
Gi5 = Multi_Process(I, g5, n);
G{1} = Gi1;
G{2} = Gi2;
G{3} = Gi3;
G{4} = Gi4;
G{5} = Gi5;
ua1 = Coef(Gi1, G);
ua2 = Coef(Gi2, G);
ua3 = Coef(Gi3, G);
ua4 = Coef(Gi4, G);
ua5 = Coef(Gi5, G);
u = [ua1, ua2, ua3, ua4, ua5];
u = u/sum(u);
Gf1 = Edge_One(G, u);
result = Gf1;
function ua = Coef(fa, f)
N = length(f);
s = [];
for i = 1 : N
fi = f{i};
si = supoles(fi, f);
s = [s si];
end
sp = min(s(:));
sa = supoles(fa, f);
ka = sp/sa;
k = 0;
for i = 1 : N
fb = f{i};
s = [];
for i = 1 : N
fi = f{i};
si = supoles(fi, f);
s = [s si];
end
sp = min(s);
sb = supoles(fb, f);
kb = sp/sa;
k = k + kb;
end
ua = ka/k;
function Gf = Edge_One(G, u)
if nargin < 2
u = rand(1, length(G));
u = u/sum(u(:));
end
Gf = zeros(size(G{1}));
for i = 1 : length(G)
Gf = Gf + u(i)*double(G{i});
end
Gf = im2uint8(mat2gray(Gf));
3.3.3形态学处理
为了进行实验说明,可编写形态学处理脚本代码,通过加载图像进入主处理函数,计 算加权系数来进行融合,得到结果并显示。具体代码如下所示。
clc; clear all; close all;
if exist(fullfile(pwd, 'dt.mat'), 'file')
load(fullfile(pwd, 'dt.mat'));
figure; imshow(result, []);
return;
end
Img = imread('images\image.bmp');
Gf1 = Main_Process(Img, 1);
Gf2 = Main_Process(Img, 2);
Gf3 = Main_Process(Img, 3);
Gf4 = Main_Process(Img, 4);
Gf5 = Main_Process(Img, 5);
G{1} = Gf1;
G{2} = Gf2;
G{3} = Gf3;
G{4} = Gf4;
G{5} = Gf5;
ua1 = Coef(Gf1, G);
ua2 = Coef(Gf2, G);
ua3 = Coef(Gf3, G);
ua4 = Coef(Gf4, G);
ua5 = Coef(Gf5, G);
u = [ua1, ua2, ua3, ua4, ua5];
u = u/sum(u);
Gf = Edge_One(G, u);
result = Gf5;
figure; imshow(result, []);
4. 实验结果
原图:
结果图:
实验结果表明,基于多尺度形态学对眼前节组织图像进行边缘提取,能平滑原图像噪 声,有效识别上下角膜的边缘位置,避免了误检测、假边缘出现的情况,为眼前节组织图 像的进一步处理提供了依据。
5. 拓展
基于数学形态学的图像处理技术以集合论为理论基础,通过构建形态结构算子来通过 非线性叠加的方式描述图像,通过集合的基本运算来进行图像处理。数学形态学广泛应用 于生物医学、电子显微镜图像分析、数字图像处理、计算机视觉等领域,已发展成为一种 新型的图像处理方法和理论。
本案例以眼前节组织边缘提取为目标,以多尺度形态学处理为基础进行实验,通过建 立不同结构形态算子的边缘提取,以及计算加权算子的方式来进行边缘图像的融合,有效 克服了传统边缘检测算子对眼前节组织边缘提取不准确的问题,具有一定的使用价值。 但 该算法运行耗时较长,在算法性能及程序的优化编码上具有一定的提升空间。