目 录
1 绪论 1
1.1 课题研究背景和意义 1
1.2国内外研究现状和发展 2
1.3研究内容 2
2 活塞环生产过程介绍与缺陷分析 4
2.1活塞环工作原理 4
2.2活塞环的的加工特点 5
2.3活塞环工艺过程介绍 6
2.4活塞环缺陷形成原因 6
3 机器视觉系统的工作原理与组成 8
3.1机器视觉工作原理 8
3.2机器视觉系统组成 8
4 图像处理介绍与缺陷分析 10
4.1对活塞环缺陷特征的简单分析 10
4.2图像二值化 10
4.3图像处理常用方法 11
4.4图像预处理 12
4.4.1图像灰度化 12
4.4.2平滑处理 12
4.4.3图像增强-直方图均衡化(equalizeHist) 14
4.4.4形态学滤波(morphologyEx) 15
4.5图片的裁剪(Rect) 16
4.6图片的混合(addWeighted) 16
4.7缺陷面积的计算(contourArea) 17
4.8图像的遍历算法 17
5 功能模块程序设计与开发 18
5.1图像预处理 18
5.2各功能的实现方法 18
5.2.1轮廓的提取 18
5.2.2图像的裁剪 20
5.2.3掉角的检测及面积测量 21
5.2.4压伤的检测 27
5.3操作界面程序设计 29
5.3.1按钮的实现 30
5.3.2图像的加载 30
6 可行性分析 32
6.1各因素对系统的影响 32
6.1.1社会因素的考虑 32
6.1.2健康因素的考虑 32
6.1.3安全因素的考虑 33
6.1.4文化因素的考虑 33
6.1.5环境因素的考虑 33
6.2复杂环境的预测 33
6.2.1光源 33
6.2.2工业相机的成像方式 34
6.2.3环境条件 35
6.3系统经济性分析 35
6.3.1生产成本 35
6.3.2产生社会价值 36
7 结论 37
参考文献 38
致 谢 39
1.3研究内容
本课题主要研究的内容有活塞环缺陷图像的采集和活塞环的缺陷图像处理,同时也涉及到活塞环工艺和机器视觉检测系统的研究。论文分为六章:
第一章:论述了国内外对于缺陷检测时的一些发展,并简要介绍论文的主要研究内容与研究方案。
第二章:阐述了目前国内外生产活塞环时的特点,与一些常规的加工方法,介绍了它的生产工艺以及缺陷产生的原因和一些避免措施。
第三章:介绍机器视觉识别的工作原理与机器视觉系统识别的组成。
第四章:介绍了活塞环缺陷的数字图像的特征,介绍了一些图像的预处理,介绍了如何遍历所有图像。
第五章:根据设计的程序各模块如何实现进行详细介绍,包括了图像的预处理、轮廓的提取,图像的裁剪、掉角的检测及面积测量、压伤的测量和操作界面的设计与功能实现。
第六章:对设计的产品和程序进行可行性分析,包括了社会、健康、法律、文化、经济以及环境因素的分析
第七章:结论与展望。

3 机器视觉系统的工作原理与组成
3.1机器视觉工作原理
基于机器视觉的产品检测在工业自动化生产中有很多重要的应用[12-13]。机器的视觉系统是利用计算机来替代人眼获取的图像信息,结合程序算法对图像信息进行处理,进行智能控制、检测和测量[14]。机器视觉包含了机械电子、计算机图像处理、控制自动化等方面。随着科技不断地发展,机器视觉的研究与应用迅速发展,对于获取得到地图像数据,已经从简单单一的灰度图像发展成为了具有高分辨率的彩色图像,在到现在的3D成像技术,图像信息从二维数据转变成为三维数据,能获取到人眼能够识别到的全部图像数据,并结合光学仪器和成熟的成像技术,机器视觉能获取肉眼无法完全识别的微小、高速的图像数据。
3.2机器视觉系统组成
机器视觉主要包括视觉引导和视觉检测,活塞环外观缺陷检测属于视觉检测。整个识别系统包括光源、成像布局、工业相机、上位机、执行机构、信息处理。在一定的光源条件和场景布局下,相机能够采集特定的数据信息,其中包括外观轮廓、缺陷信息等有用信息,同时也存在大量无用信息,需要通过光源条件、场景布局来消除,同时也可以通过软件的方式实现采集特定的数据。整个系统工作方式如下:
采用特定的光源,特定的成像布局对采集区进行环境搭建,执行机构通过旋转,活塞环完成一周的数据采集,工业相机采集活塞环表面数据,并将数据上传至上位机,上位机通过OpenCV库对采集图像数据进行处理,从而检测具体的缺陷,最后输出报告。
影响机器视觉性能的因素主要包括以下几个方面[15]:
(1)光源
光源的作用不仅是起到照明作用,其中在检测环节中,能够让缺陷特征更加明显,其次与环境能够有明显的区域差异,本文转载自http://www.biyezuopin.vip/onews.asp?id=14849能够在处理图像中快速提取其轮廓,为之后的图像处理提供便利。
(2)成像布局
检测的东西不同需要的成像布局方式也不尽相同,检测表面缺陷时,可以采用环形光源,检测轮廓时,可以采用底部背光源。

4 图像处理介绍与缺陷分析
4.1对活塞环缺陷特征的简单分析
基体掉角是活塞环中比较明显的缺陷,主要是因为在加工中开口间隙的过程中由于应力集中导致活塞环非去除部分崩裂,形成缺角,进行二值化后可以明显观测出来。
压伤是缺陷中比较难检测的缺陷,主要是因为压伤的形状很小,且颜色和反光性能与活塞环基体的颜色和反光性能十分接近,需要对打光角度和光的亮度要求很高,需要低角度强光照射。
划痕是由于在运输过程中的碰撞,造成表面形成的划痕,为克服在图像获取中光照对图像照射的不均匀,需要对图像进行增强处理[16]。选择直方图均衡化既可以提高图像的对比度,也可以改善图像的视觉效果,达到凸显划痕的目的。


// MFC测试.cpp : 定义应用程序的类行为。
//#include "stdafx.h"
#include "MFC测试.h"
#include "MFC测试Dlg.h"#ifdef _DEBUG
#define new DEBUG_NEW
#endif// CMFC测试AppBEGIN_MESSAGE_MAP(CMFC测试App, CWinApp)ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
END_MESSAGE_MAP()// CMFC测试App 构造CMFC测试App::CMFC测试App()
{// 支持重新启动管理器m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;// TODO: 在此处添加构造代码,// 将所有重要的初始化放置在 InitInstance 中
}// 唯一的一个 CMFC测试App 对象CMFC测试App theApp;// CMFC测试App 初始化BOOL CMFC测试App::InitInstance()
{// 如果一个运行在 Windows XP 上的应用程序清单指定要// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,//则需要 InitCommonControlsEx()。否则,将无法创建窗口。INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);// 将它设置为包括所有要在应用程序中使用的// 公共控件类。InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp::InitInstance();AfxEnableControlContainer();// 创建 shell 管理器,以防对话框包含// 任何 shell 树视图控件或 shell 列表视图控件。CShellManager *pShellManager = new CShellManager;// 激活“Windows Native”视觉管理器,以便在 MFC 控件中启用主题CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));// 标准初始化// 如果未使用这些功能并希望减小// 最终可执行文件的大小,则应移除下列// 不需要的特定初始化例程// 更改用于存储设置的注册表项// TODO: 应适当修改该字符串,// 例如修改为公司或组织名SetRegistryKey(_T("应用程序向导生成的本地应用程序"));CMFC测试Dlg dlg;m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();if (nResponse == IDOK){// TODO: 在此放置处理何时用//  “确定”来关闭对话框的代码}else if (nResponse == IDCANCEL){// TODO: 在此放置处理何时用//  “取消”来关闭对话框的代码}else if (nResponse == -1){TRACE(traceAppMsg, 0, "警告: 对话框创建失败,应用程序将意外终止。\n");TRACE(traceAppMsg, 0, "警告: 如果您在对话框上使用 MFC 控件,则无法 #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS。\n");}// 删除上面创建的 shell 管理器。if (pShellManager != NULL){delete pShellManager;}// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,//  而不是启动应用程序的消息泵。return FALSE;
}













基于C++MFC的活塞环外观表面缺陷机器视觉检测系统相关推荐

  1. 基于 C++ MFC 活塞环外观表面缺陷检测【100010409】

    活塞环外观表面缺陷检测 1 绪论 1.1 课题研究背景和意义 活塞环是用于嵌入活塞槽沟内部的金属环,是一种具有较大向外扩张变形的金属弹性环,它被装配到剖面与其相应的环形槽内.活塞环的作用包括密封.调节 ...

  2. 识别产品外观的合格软件_产品外观质量视觉检测系统.PDF

    产品外观质量视觉检测系统 产品外观质量视觉检测系统 北京大恒图像视觉有限公司 Beijing Daheng Image Vision Co., Ltd 公司简介 中国大恒(集团)有限公司是中国科学院于 ...

  3. 主板检测卡c5_检测升级 | 华北工控推出机器视觉检测系统计算机产品方案

    为适应现代智能制造的生产模式,传统企业的制造技术和自动化制造系统正在不断升级,机器视觉开始广泛的应用于制造业的检测领域,以满足自动生产中的工序间检测和过程检测对于检测效率和精准度的要求. 01.机器视 ...

  4. 基于改进YOLOv5的挖机铲斗缺陷检测系统(源码&教程)

    1.研究背景 针对现有电铲斗齿检测方法存在实时性较差.误报率较高等问题,提出了一种基于机器视觉的电铲斗齿缺失检测方法.该方法利用红外热像仪采集铲斗图像,基于模板匹配原理对复杂背景下斗齿的目标区域进行准 ...

  5. 榛子外观缺陷视觉检测系统

    榛子(坚果类食品),又名山板栗.尖栗或棰子,榛子是国际畅销的名贵干果,也是世界上四大干果(核桃.杏仁.榛子.腰果)之一,并有"坚果之王"的美誉. 榛子是木本粮食和木本油料树种,综合 ...

  6. 基于深度学习的智能PCB板缺陷检测系统(Python+清新界面+数据集)

    摘要:智能PCB板缺陷检测系统用于智能检测工业印刷电路板(PCB)常见缺陷,自动化标注.记录和保存缺陷位置和类型,以辅助电路板的质检.本文详细介绍智能PCB板缺陷检测系统,在介绍算法原理的同时,给出P ...

  7. CCD机器视觉检测系统常规的工作流程

    CCD机器视觉检测系统常规的工作流程有哪些? 1.第一步,将监测到的物品靠近或运动到工业镜头视角的中心点,如果是,则将激发脉冲信号发送至影像采装置 2.影像采集装置按照开发技术人员设定的应用程序和定时 ...

  8. 基于深度学习技术的电表大数据检测系统

    基于深度学习技术的电表大数据检测系统 人工智能技术与咨询 来源:< 人工智能与机器人研究> ,作者方向 关键词: 智能电表:数据分析:深度学习时序模型: 摘要: 随着我国电厂不断发展,我国 ...

  9. 基于轻量化重构网络的表面缺陷视觉检测

    源自:自动化学报     作者:余文勇 张阳 姚海明 石绘  编辑:OpenCV与AI深度学习 摘 要 基于深度学习的方法在某些工业产品的表面缺陷识别和分类方面表现出优异的性能, 然而大多数工业产品缺 ...

最新文章

  1. 大家放松下吧,咱家先在首页呆会儿!
  2. workbench mysql mac_mysql workbench mac下载-mysql workbench mac 64位下载8.0.15 官方最新版__西西软件下载...
  3. 项目展示-新浪微博客户端
  4. 支持多分支语句吗_Go的条件判断语句
  5. Atititi atiitt eam pam资产管理 购物表去年.xlsx
  6. abaqus 不收敛问题
  7. 异步FIFO设计与实现及相关问题
  8. 计算机硬盘容量减少修复,硬盘容量丢失的修复方法
  9. 天涯红旗linux,红旗linux安装中的几点技巧(转载)
  10. Ubuntu18.04安装百度网盘客户端
  11. JDBC 操作数据库步骤
  12. css 画一条竖线 或横线
  13. vue实现PC端调用摄像头拍照人脸录入、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式
  14. python读取配置文件 分段_python分割文件的常用方法
  15. 万国数据赢得GITC 年度互联网最佳服务奖
  16. 建议收藏 | 可实操,数据中台选型示例
  17. Html按钮调用手机静音,静音/取消静音没有按钮HTML5
  18. Truelore星桥,为投标全过程保驾护航
  19. 数据库xxx已打开,并且一次只能有一个用户访问。 (Microsoft SQL Server,错误: 924)
  20. 设计模式还有行为模式。。。

热门文章

  1. 在网页中制作icon图标
  2. pyplot.scatter函数绘制散点图
  3. mysql checkpoint6_关于MySQL checkpoint
  4. JAVA(4)学习笔记:JVM虚拟机上的栈、大驼峰命名法和小驼峰命名法、实参和形参、重载方法、调用栈、递归练习(汉诺塔+斐波那契数列)、数组的定义、数组的初始化、增强for循环。
  5. iMX6ULL学习(三)
  6. Android 嵌入网页,为H5开发做伏笔
  7. 高新技术企业认定需要的审计报告
  8. noj1042 -电子老鼠闯迷宫
  9. 【Qt 从入门到入土】下篇
  10. Android Compose日期选择器