前言
  托更了近一月,今日更新一篇使用MATLAB处理机械键盘的按键,对按键进行一个初步的定位,采用的是基础的形态学操作(数字图像基础内容)。
  本数据来自实验室素材,图像格式为:bmp ,需求为:对图像中的按键采用数字图像基础内容进行初步的定位(不借助神经网络);其中按键分为:无损、存在白点、存在凹陷、存在腐蚀这四种,我将分别选择这四种图像进行实验处理。
定位设计构思
  上述图像为无损按键,在PC端可以查看图像位深度为8(单通道图像),因此在进行图像处理的时候不需要进行灰度化处理。
   由于按键有一个显著的特征:具备连通黑圈包裹,外界黑圈并不连通,那么在二值化后图像应该可以是能够有一个被黑色包裹的圆圈。这里不采用霍夫变换进行圆检测是因为题干要求的是用形态学变换检测。
   二值化后这个阈值的把控以及内部噪点的剔除是一个耐心的活,需要不断的进行调试直至成功显示,最终得到的应该是一个黑色圆盘或者是白色的圆盘,然后计算边界值Plot进行定位。
实践操作
  这里我分了5个步骤,具体内容如下所示(图像从左至右依次递增):
Step1: 显示选择的图像 (图1)\ Step2: 对选择图像二值化(图2) \ Step3: 去除噪点并取反(图3) \ Step4: 膨胀运算 (图4)\ Step5: 计算边界定位(图5)   其中Step1: 、 Step2: 选择图像并二值化就没什么好说的了,不过大家可以看见在经二值化后图像中确实是有一个黑色的圆框将按键包裹,虽然外界也有黑色部分,单在构思部分也点明了外界并不连通,可以根据是否为连通区域进行定位到按键。
   为什么要进行第三步的去除噪点呢?将图像外部的黑色剔除掉,保留圆圈内部信息,在这里我是选择去掉连通像素小于70000的区域(提出后图=bwareaopen(二值图,70000)),然后再进行取反,方便腐蚀。
  在得到一张黑色圆圈二值图像后,可以明显看出是按键的位置,这个时候我们需要计算黑色的边界,在图像中0代表白色,255代表黑色;我们需要计算边界处的255在图像矩阵中的位置,再通过Plit进行定位绘制即可。
结果展示
白点: 腐蚀: 凹陷: 正常:
      代码部分详见: https://juejin.cn/post/7101467462684082206/
原文:https://juejin.cn/post/7101448993729118216