OpenCV实战 | 手机镜头目标提取、缺陷检测与图像畸变校正
前两天参加了北师的数学建模校赛,B题是一道图像处理的题,于是趁机练习了一下OpenCV,现在把做的东西移植过来。 (2020.5.31补充:此方法在竞赛中取得二等奖。这次的参赛论文的确存在一些问题,例如没有对结果进行量化评估、对处理方式的具体细节叙述得不够明确、参考文献不够丰富(好吧,其实没有引用参考文献)等。) 题目大意 给出一张生产线上拍摄的手机镜头的图像(如下),要求解决三个问题: 建立模型构造出一种分割方法,可以将左右两个镜头的待测区域(白色环形内区域)准确地分离出来。 建立模型构造一种检测方法,自动地在待测区域之内将所有缺陷点找出,缺陷点为人眼可识别的白点,最小可为一个像素点。要求给出缺陷点的数学描述,并根据该描述建立检测模型,自动确定每个缺陷点的位置和像素大小。给出右侧镜头中按像素大小排序的最大的前五个缺陷点的位置坐标。 由于在实际拍照中镜头可能会在模具中抖动,所以拍摄的图片可能并不是正对镜头的,此为图像的偏心现象。比如图中左侧图像就是正对的情况,右侧就是不正对(偏心)的情况。建立模型构造一种校正方法,校正右侧图像的偏心现象。呈现校正效果,并给出第2问所求五个缺陷点校正后的位置坐标。 问题求解 问题一 这个问题是目标检测,并且需求十分明确:提取出白色圆环中的区域的图像。观察图像可以发现图中白色的部分几乎只有需要检测的白色圆环