# 基于Matlab图像识别技术的隐形眼镜镜片边缘缺陷检测
## 实现原理
1. 使用Matlab工具,首先分别识别检测出镜片的垂直边缘和水平边缘;
2. 然后进行求平方和并开根的处理,从而获得欧几里得边缘的结果;
3. 其次再对边缘平方和处理后的数据筛选,并令其值为1进行二进制,得到二进制边缘结果;
4. 最后再通过确定圆心、半径,与圆周各点做差找到缺陷。
## 运行结果
1. 完整的理想图像
程序读取并识别检测完整的理想图像时,由结果可见,输出的图像清晰准确地标识出了镜片边缘的缺陷,包括部分细小的缺陷,人眼都难以分辨,而通过程序识别处理,精准无误地被标出。
2. 不完整的图像
当输入一张不完整的图像时,程序仍能准确地获得对象的边缘,但无法计算出圆心所在和半径,因此也就无法识别出边缘缺陷。
3. 存在较大缺陷的图像
输入的图像存在肉眼可见的较大缺陷时,程序经过计算仍然能够精准识别出缺陷并标出,未出现误判的情况。
4. 图像存在较多噪声干扰
但待检测识别的镜片图像存在较多噪声干扰时,该程序无法正常运行,受噪点干扰无法识别出镜片边缘,也无法计算标示出边缘缺陷所在。
## 改进思路
根据4个测试的结果,可明确看出该程序在部分情况下具有一定的边缘缺陷检测识别功能,能精准识别并标示出缺陷位置所在,但在图像不完整以及有噪声干扰的情况下无法正常工作,故提出以下改进措施。
1). 针对图像不完整情况下无法识别出圆心以及半径的问题,在已知的部分圆弧上取四个点,两两分别连线并求其线段的角平分线,则这些线的交点位置就是圆心,进而就可以轻松获得对象的圆心位置和半径。
2). 针对图像有较大噪声干扰导致无法识别出边缘的问题,在进行垂直边缘和水平边缘识别之前,加入噪声过滤的处理。通过均值滤波、中值滤波和高斯加权均值滤波模版对图像的像素点进行处理,从而排除噪声对识别的影响,之后再进行正常的边缘缺陷识别流程。
## 总结
根据实验结果可知,对于隐形眼镜镜片的边缘缺陷检测这一问题,本文使用的程序能在一定情况下做到精准的识别以及对缺陷的标识,但在部分情况下无法正确识别,不能完全应对所有可能的情况,具有一定的改进提升空间。与此同时,本文也针对程序无法完成识别检测的情况提出了对应的优化改进策略,并且在后续的研究中进行实践,进一步提升该程序在镜片边缘检测上的准确性以及鲁棒性。