热线电话:0755-23712116
邮箱:contact@shuangyi-tech.com
地址:深圳市宝安区沙井街道后亭茅洲山工业园工业大厦全至科技创新园科创大厦2层2A
基本思想:用一定形态的结构元素去度量和提取图像中的对应形状,达到分析知识的目的。可用于图像处理的各个方面,包括图像分割、边界检测、特征提取。
结构元素:形态学变换中的基本元素,使为了探测图像的某种结构信息而设计的特定形状和尺寸的图像,称为收集图像结构信息的探针。
结构元素有多种类型:如圆形、方形、线型等,可携带知识(形态、大小、灰度和色度信息)来探测、研究图像的结构特点。
形态学运算包括:二值化腐蚀和膨胀、二值化开闭运算、骨架抽取、击中击不中变换等。
形态学四个基本算子:膨胀,腐蚀、开启和闭合组成,这些基本运算还可以推导和组合成各种数学形态学实用算法。
腐蚀运算思路:定义结构元素(与模板类似),结构元素在整幅图像中移动,移动到每个像素点上,只有结构元素与图像上对应像素点的像素值全部相等时,保留这个像素点的值。
腐蚀运算作用:消除物体边界点,使边界点向内部收缩,可以把小于结构元素的物体去除。选取不同大小的结构元素,去除不同大小的物体。如两个物体间有细小的连通,通过腐蚀可以将两个物体分开。
腐蚀运算:
腐蚀运算示意图:
基本方法:
通常拖到结构元素在X域移动,在每一个位置上,当结构元素B在中心平移到X图像上的某优点(x,y)。
如果结构元素内的每一个像素都与以(x,y)为中心的相同邻域中对应像素完全相同,那么就保留(x,y)像素点。
对于不满足条件的像素点则全部删除,达到边界向内收缩效果。
int Image[120][180]; memset(Image, 0, sizeof(Image)); //全方位腐蚀运算 for (int i = 1; i < Use_ROWS-1; i++) { for (int j = 1; j < Use_Line - 1; j++) { if (Image_Use[i][j] == 255 && Image_Use[i][j + 1] == 255 && Image_Use[i][j - 1] == 255) { Image[i][j] = 255; } } }
膨胀运算思路:定义结构元素(与模板类似),结构元素在整幅图像中移动,移动到每个像素点上,如果结构元素与图像上对应像素点的像素值至少有一个像素相等时,保留这个像素点的值。
膨胀运算作用:与腐蚀相反,对二值化物体边界点扩充,将与物体接触的所以背景点合并到该物体中,使边界向外扩张。如果两个物体之间的距离比较近,会把两个物体连通到一起,对填补图像分割后物体的空洞有用。
膨胀与腐蚀比较:
膨胀运算:
膨胀运算示意图:
int Image[120][180]; memset(Image, 0, sizeof(Image)); //全方位膨胀运算 for (int i = 1; i < Use_ROWS-1; i++) { for (int j = 1; j < Use_Line - 1; j++) { if (Image_Use[i][j] == 255 || Image_Use[i][j + 1] == 255 || Image_Use[i][j - 1] == 255) { Image[i][j] = 255; } } }