基于C++的图像检测系统的设计

2017-07-03 14:22蒋庆磊聂永涛吴慧君
现代农村科技 2017年6期
关键词:图像处理灰度编程

蒋庆磊 聂永涛 吴慧君

(潍坊工程职业学院 山东 青州 262500)

基于C++的图像检测系统的设计

蒋庆磊 聂永涛 吴慧君

(潍坊工程职业学院 山东 青州 262500)

本文是基于C++编写图像处理程序,完成图像检测系统的设计,系统功能包括:打开*.bmp文件,图像的灰度处理、二直化、阈值变换、平滑滤波、边缘检测,智能识别等。系统开发和程序运行平台为Win7,采用C++Builder软件。检测系统通过调试运行,初步实现了设计目标。

C++;图像处理;检测系统;C++Builder

无论是在机电产品研发中,还是从事图像检测处理工作,都需要有良好的图像处理的能力。数字图像处理是运用相关数字技术,对图像采取特定算法进行处理,实现预期目标。伴随数字计算机技术的快速发展,数字图像处理技术已经发展成为一门学科,具有广泛的应用。借助C++编程,设计图像检测系统,实现图像的智能识别判断,提高图像检测的效率。

1 C++编程简述

1.1 C++语言。C++是兼容了C,保持了C的优点,是面向对象的编程设计的语言。在C++的集成环境下,可以直接调试和运行大多数的C程序代码。这样既继承和开发了当前已在广泛的软件,又节省了人物力。C++编程突出了各个模块程序的独立性,增强了程序的可移植性,优化了程序代码的结构,强化了程序的扩充性。C++的优点是语句简练,语法灵活宽松,方便了用户书写编程。但存在由于编译时采用宽松的语法,不容易发现许多逻辑上的错误,加大了用户编程的难度。

1.2 C++集成环境。C++程序和C程序的编译和调试都可以在C++集成环境下进行。一般在C++集成环境下规定:C程序定义为扩展名为c.的源程序;同时,C++程序定义为扩展名为cpp.的源程序。

1.3 C++Builder软件应用。C++Builder软件的优点是菜单简单、功能齐全、效率较高,融合了C++编程。C++Builder包含Delphi可视化控件,编译快捷,兼容了组件技术,是一种可视化的程序设计工具,能够忽略没有变化的代码和函数,快速进行编译、连接。该软件新增加了SOAP/WebService、WebSnap技术。借助上述技术,可以在32位系统上编写高效的Windows和Internet应用程序。该软件的开发工具包含可视化的窗口设计端、控件面板、工程项目管理器、调试控制器等,方便程序员进行创建、设计程序。BCB软件采用多样的输入/输出驱动装置,可以和很多输入/输出设备,如PLC、特种模块、输入/输出板卡、特种仪表等,构成现场使用的系统。借助如支持服务器远距离交互、转换变化数据方法等通信方法,实现与外设进行数据交互。因此,在图像处理过程中采用BCB编程是很必要的。

2 图像处理技术

2.1 灰度的处理。工业现场中获取的零件图像大部分是32位真彩色图像,具有较高的分辨率,占用很大内存,信息量大,不便于快速进行模式识别,因此,把现场获取的真彩图像变换成256色.bmp图像,再变换成8位灰度图像。

2.2 变换阈值。现场获取的零件彩色图像,变换成灰度图像,分256个等级。变换阈值就是把灰度图像变换成黑/白两色的二值图像。借助灰度的直方图获取谷底的阈值范围,并提取阈值。再对灰度图像采取变换阈值,实现零件图像的二值化。

2.3 均衡灰度。均衡灰度是把灰度图像在每一个级别上均采用同像素进行显示,来优化图像的对比度,均匀化灰度的分布。其处理原理是借助压缩初始图像中的像素较少的区域,延伸像素较多的区域。

2.4 平滑图像。平滑图像是比较实用的处理方式,实现去除图像的噪声,主要包含椒盐、随机等类型噪声。平滑图像的空间方法分为线性、非线性和自适应等类型的处理,频率处理方法是采用低通滤波除噪。

2.5 图像滤波。图像滤波的一种算法是选取包含奇数点的窗口,把初始化的图像像素与其中心进行整合,提取特定窗口对应的灰度数值,并按照升序排列灰度,选取中间值来替换窗口中心像素点的值。该算法解决了滤波后细节模糊的缺点。

2.6 图像锐化。图像锐化是一种图像强化的方法。在平滑图像后存在图像边界及轮廓模糊的缺点,因此尽量克服上述问题,可以采用图像锐化方法,使图像的边界更加清晰。算法是借助微积分,可以采用梯度运算,获取更加清晰的图像轮廓,不改变图像的原始灰度。

2.7 分割阈值。分割图像的阈值有很多方法,比如把每一个像素等分到各自区域,称为区域划分;针对区域的边界,进行获取识别,称为边界算法。对图像进行分割阈值提取轮廓的过程是:根据灰度直方图进行确定检测零件图像的阈值,再对检测图像实现二值化,进行图像锐化,采用特定算法获取检测图像的边缘轮廓。

3 图像检测系统的软件界面

3.1 软件的功能面板。基于图像处理技术的零件加工质量检测系统的软件界面如图1所示。登录功能界面,借助文件菜单中的“打开位图”项目打开在本地电脑上存放的零件原始彩色图像,可以进行原始图像和图像处理后的效果显示。对零件图像进行灰度处理、图像滤波的功能界面如图2所示,可以选取不同的滤波方式。对零件图像进行平滑处理,功能界面如图3所示。图像的二值化、灰度直方图等功能界面,如图4所示。提取图像边缘轮廓,其功能界面如图5所示。

图1 登陆界面

图2 灰度处理

图3 图像平滑

图4 (a)二值化

图4 (b)直方图

图5 阈值分割

3.2 图像处理实例。本检测系统可以检测直径为6 mm的针阀体零件内孔加工质量,其中抽取了6个需要检测的内孔图像,如图6所示。上述6个零件图像,按照一定算法处理后的结果,如图7所示。

3.3 检测系统运行结果。统计完特征参数后,再进行图像的分割,根据特定参数,判别零件加工质量是否合格,运行结果如图8所示。

图6 原始图像

图7 处理后图像

图8 运行结果

4 结束语

本检测系统的调试结果表明,该检测结果稳定、准确,适用于零件加工质量的现场质检,同时该检测系统易于操作、效果明显,实现了基于BCB编程的检测系统开发,具有广阔的市场前景。

本论文是潍坊市科技发展项目课题的阶段性研究成果,项目编号:2016GX083

[1]欧振国.基于C++Builder环境下电力仓库管理系统的指纹识别与条形码技术[J].农村电气化,2017(2):32~34.

[2]齐林宇,唐晶,魏文泽,等.基于C++Builder的换热器性能试验平台测控软件的开发[J].计算机测量与控制,2016,24(6):139~142.

猜你喜欢
图像处理灰度编程
采用改进导重法的拓扑结构灰度单元过滤技术
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
编程,是一种态度
元征X-431实测:奔驰发动机编程
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
编程小能手
纺织机上诞生的编程
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用