基于Matlab的饮料满瓶检测图像处理

基于MATLAB GUIDE开发的图形用户界面(GUI)程序,主要用于瓶装产品视觉检测,特别是检测瓶子是否装满。程序通过图像处理技术对输入的瓶装图像进行分析,识别未装满的瓶子并标记出来。

🧾 一、主要功能

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










  • 完整代码私信回复基于Matlab的饮料满瓶检测图像处理