1 简介
提出一种基于数学形态学的图像分割算法,可以实现静态水果的大小 检测,并运用了基于机器视觉的水果品质分级系统,能够实现水果的动态检测.在水果的动态检测中,先利用图像分割算法对水果图像依次进行灰度化处理,背景分 割和边缘提取等处理;然后对所得图像进行后期的去噪,腐蚀等相关技术处理,得到比较理想的分割效果.通过机器视觉系统,MATLAB算法和组态王监控界面 组成了一个完整的分级系统对水果进行静态及动态的分级检测,证明提出的基于数学形态学的图像分割算法具有准确性,可行性及实用性.
基于数学形态学的图像分割算法基本思想是对图像用一定的结构元素进行基本操作之后再与原图相减,它利用图像的拓扑特性进行操作,利用集合论对图像进行非线性变换。数学形态学最基本的操作是腐蚀和膨胀,通过它们不同的组合形成形态开运算、闭运算,对灰度数字图像按照一定的结构元素取最大值与最小值,从而实现图像的分割。数学形态学着重研究图像的几何结构,以图像的形态特征为研究对象,且有一整套完备的形态运算法则,在对物体的特征识别和研究对象的几何结构描述、分析中与其他分割方法相比具有一定的优势; 利用形态学算子还可以有效地滤除图像噪声,同时保留图像中原有的信息,突出图像的几何特征,便于进一步的图像分析.
2 部分代码
function [ImageOut] = HomoFilter(ImageIn, High, Low, C, Sigma) Img = double(ImageIn); % 转换图像矩阵为双精度型,不会改变数据本身 [Height, Width] = size(ImageIn); % 返回的行数和列数 CenterX = floor(Width / 2); % 中心点坐标 CenterY = floor(Height / 2); LogImg = log(Img + 1); % 图像对数数据 Log_FFT = fft2(LogImg); % 傅里叶变换 for Y = 1 : Height for X = 1 : Width Dist= (X - CenterX) * (X - CenterX) + (Y - CenterY) * (Y - CenterY); % 点(X,Y)到频率平面原点的距离 H(Y, X)=(High - Low) * (1 - exp(-C * (Dist / (2 * Sigma * Sigma)))) + Low; % 同态滤波器函数 end end H = ifftshift(H); % 对H做反中心化 Log_FFT = H.* Log_FFT; % 滤波,矩阵点乘 Log_FFT = ifft2(Log_FFT); % 反傅立叶变换 Out = exp(Log_FFT)-1; % 取指数 % 指数处理ge = exp(g)-1;% 归一化到[0, L-1] Max = max(Out(:)); Min = min(Out(:)); Range = Max - Min; for Y = 1 : Height for X = 1 : Width ImageOut(Y, X) = uint8(255 * (Out(Y, X) - Min) / Range); end end end
3 仿真结果
4 参考文献
[1]朱培逸, and 刘红晴. "基于数学形态学图像分割算法在水果分级中的应用." 科学技术与工程 34(2013):6.