基于Matlab的饮料满瓶检测图像处理
基于MATLAB GUIDE开发的图形用户界面(GUI)程序,主要用于瓶装产品视觉检测,特别是检测瓶子是否装满。程序通过图像处理技术对输入的瓶装图像进行分析,识别未装满的瓶子并标记出来。
🧾 一、主要功能
- 图像导入与显示:支持常见图像格式(bmp, jpg, png, jpeg, tif)。
- 灰度化处理:将彩色图像转为灰度图像。
- 二值化处理:使用Otsu阈值法进行图像二值化。
- 噪声去除:通过形态学闭操作和中值滤波去除噪声。
- 小区域去除:根据用户设定的面积阈值去除小面积干扰区域。
- 目标标记与测量:标记每个瓶子区域,计算其面积,并在图像上绘制外接矩形和面积数值。
- 缺陷检测:根据用户设定的面积阈值判断哪些瓶子未装满,并在原图上标注不合格瓶子的编号。
⚙️ 二、算法步骤 - 图像读取与显示(pushbutton1_Callback)
- 灰度化处理(pushbutton2_Callback)
- 二值化处理(pushbutton3_Callback)
• 使用graythresh自动计算阈值
• 使用im2bw进行二值化,并取反使得瓶子为白色 - 形态学处理与滤波(pushbutton4_Callback)
• 闭操作(imclose)使用圆形结构元素(strel(‘disk’,4))
• 中值滤波(medfilt2)使用5×5窗口 - 去除小区域(pushbutton5_Callback)
• 使用bwareaopen去除面积小于设定值的区域 - 标记与绘制外接矩形(pushbutton6_Callback)
• 使用bwlabel标记连通区域
• 使用regionprops获取外接矩形和面积
• 使用rectangle和text绘制矩形和面积数值 - 缺陷检测与结果显示(pushbutton7_Callback)
• 根据面积阈值判断哪些瓶子未装满
• 在原图上显示不合格瓶子的编号
🧰 三、技术路线
• 开发环境:MATLAB + GUIDE
• 图像处理工具包:Image Processing Toolbox
• 主要函数:
• imread, imshow
• rgb2gray, im2bw, graythresh
• imclose, strel, medfilt2
• bwareaopen, bwlabel, regionprops
• rectangle, text
🎚️ 四、参数设定 - 区域面积阈值(edit1):
• 用户输入,用于bwareaopen,去除面积小于该值的区域 - 瓶子装满判断阈值(edit2):
• 用户输入,用于判断瓶子是否未装满(面积小于该值的视为不合格)
💻 五、运行环境
• 软件:MATLAB(需安装Image Processing Toolbox)
• 兼容性:适用于Windows系统,支持MATLAB R2020a及以上版本(建议使用较新版本以兼容所有函数)
• 界面语言:部分界面文本为中文,需MATLAB支持中文字符显示
📌 总结
该程序是一个完整的瓶装产品视觉检测系统,通过图像处理技术实现对瓶子是否装满的自动化检测。用户可通过GUI界面交互式地处理图像并查看结果,适用于工业视觉检测、质量监控等场景。
- 完整代码私信回复基于Matlab的饮料满瓶检测图像处理