原创
©著作权归作者所有:来自51CTO博客作者matlab科研助手的原创作品,请联系作者获取转载授权,否则将追究法律责任
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; % 取指数
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
1.
end
3 仿真结果
4 参考文献
[1]朱培逸, and 刘红晴. "基于数学形态学图像分割算法在水果分级中的应用." 科学技术与工程 34(2013):6.
部分理论引用网络文献,若有侵权联系博主删除。
赞 收藏 评论 举报相关文章
【水果检测】基于计算机视觉实现柑橘质量检测及分级系统含Matlab源码 1 简介水果分级技术能够保证水果的质量,提高消费者的满意度,增强水果产业的竞争力和利润水平。农业现代化进程的加快使得农产品品质检测和分级技术显得更加重要。在我国,水果品质检测绝大部分仍停留在靠人工感官进行识别判断的原始阶段,这种主观评定效率低,误差大。这导致了我国出口水果的外观质量较差,良莠不齐,大小不一,在国际市场上缺乏竞争力,提高我国水果的品质检测水平是当务之急。与其它检测技术相比,计算机视觉数据 计算机视觉 matlab代码