形态学初步定位键盘按键

简介: 形态学初步定位键盘按键

前言


  托更了近一月,今日更新一篇使用MATLAB处理机械键盘的按键,对按键进行一个初步的定位,采用的是基础的形态学操作(数字图像基础内容)。


  本数据来自实验室素材,图像格式为:bmp ,需求为:对图像中的按键采用数字图像基础内容进行初步的定位(不借助神经网络);其中按键分为:无损、存在白点、存在凹陷、存在腐蚀这四种,我将分别选择这四种图像进行实验处理。



定位设计构思


image.png

上述图像为无损按键,在PC端可以查看图像位深度为8(单通道图像),因此在进行图像处理的时候不需要进行灰度化处理。


   由于按键有一个显著的特征:具备连通黑圈包裹,外界黑圈并不连通,那么在二值化后图像应该可以是能够有一个被黑色包裹的圆圈。这里不采用霍夫变换进行圆检测是因为题干要求的是用形态学变换检测。


   二值化后这个阈值的把控以及内部噪点的剔除是一个耐心的活,需要不断的进行调试直至成功显示,最终得到的应该是一个黑色圆盘或者是白色的圆盘,然后计算边界值Plot进行定位。




实践操作


  这里我分了5个步骤,具体内容如下所示(图像从左至右依次递增):


Step1: 显示选择的图像 (图1)


Step2: 对选择图像二值化(图2)


Step3: 去除噪点并取反(图3)


Step4: 膨胀运算 (图4)


Step5: 计算边界定位(图5)

image.png


  其中Step1:Step2: 选择图像并二值化就没什么好说的了,不过大家可以看见在经二值化后图像中确实是有一个黑色的圆框将按键包裹,虽然外界也有黑色部分,单在构思部分也点明了外界并不连通,可以根据是否为连通区域进行定位到按键。


   为什么要进行第三步的去除噪点呢?将图像外部的黑色剔除掉,保留圆圈内部信息,在这里我是选择去掉连通像素小于70000的区域(提出后图=bwareaopen(二值图,70000)),然后再进行取反,方便腐蚀。


  在得到一张黑色圆圈二值图像后,可以明显看出是按键的位置,这个时候我们需要计算黑色的边界,在图像中0代表白色,255代表黑色;我们需要计算边界处的255在图像矩阵中的位置,再通过Plit进行定位绘制即可。




结果展示


白点:image.png

腐蚀:image.png凹陷:image.png正常:image.png

     


相关文章
|
3天前
|
C#
LabVIEW中如何实现任意形状的不规则按键
LabVIEW中如何实现任意形状的不规则按键
|
7月前
|
程序员 芯片
键盘检测原理及应用实现介绍2
独立式键盘的检测原理和应用实现还可以进一步介绍如下: 4. 检测原理:独立式键盘通常使用机械开关作为按键的接触点。机械开关是一种通过机械力将两个金属触点闭合的开关。当按键被按下时,触点闭合,电路连通,通过检测电路状态可以确定按键是否被按下。 5. 应用实现:独立式键盘的检测与行列扫描不同,每个按键有独立的电路接触点,因此不需要扫描整个键盘矩阵。常见的应用实现是使用键盘控制器芯片,它具有多个输入引脚来连接各个按键的接触点,通过检测引脚的状态来确定按键是否被按下。 6. 应用场景:独立式键盘在一些对触感、耐用性和反馈要求较高的场景中得到广泛应用。以下是一些典型的独立式键盘应用场景: - 机械
59 3
|
7月前
|
数据安全/隐私保护 芯片 智能硬件
键盘检测原理及应用实现介绍1
键盘是计算机、手机、平板电脑等设备上最常用的输入设备之一。它是用来输入文本、命令和控制操作的重要工具。键盘检测原理是指如何检测用户按下或释放键盘上的按键,并将按键的信息传递给计算机或其他设备进行相应的处理。 键盘检测原理可以分为两种类型:矩阵式键盘和独立式键盘。下面将分别介绍这两种键盘检测原理及其应用实现。 一、矩阵式键盘检测原理及应用实现: 矩阵式键盘是最常见的键盘类型之一,它由多个按键组成,并且按键排列成矩阵的形式。常见的矩阵式键盘为4x4或3x4排列,即有4行或3行各有4列的按键。以下是矩阵式键盘的检测原理及应用实现: 1. 检测原理:矩阵式键盘使用行列扫描的方式进行按键检测。键
120 0
|
10月前
LabVIEW鼠标滚轮实现波形放大缩小(zoom)功能
实现功能:将鼠标放在波形图曲线上,滚轮可以实现波形放大缩小功能。 代码思想:注册鼠标滚轮事件,滚轮时改变波形图横纵坐标最大值和最小值。
75 0
LabVIEW操作鼠标滚轮放大/缩小图像
之前分享过一篇关于LabVIEW采集鼠标、键盘数据的文章:LabVIEW采集鼠标、键盘数据,本篇博文将分享一个关于鼠标滚轮的有意思小技巧:操作鼠标滚轮来放大和缩小图片。
|
11月前
|
数据采集
LabVIEW采集鼠标、键盘数据
鼠标、键盘输入数据是应用程序最基本的交互操作方式,本篇博文将分享LabVIEW如何获取这些数据的方法。
win10怎么调鼠标灵敏度(Win10鼠标滑轮灵敏度怎么设置)
win10怎么调鼠标灵敏度(Win10鼠标滑轮灵敏度怎么设置)
807 0
|
Linux
Linux驱动开发——去除按键抖动问题
Linux驱动开发——去除按键抖动问题
319 0
Linux驱动开发——去除按键抖动问题
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
|
程序员 C++ Windows
模拟键盘按键 自动输入文字
对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同的编码以方便应用程序调用,比如在DOS系统下的ASCII码,在Windows系统下的虚拟键盘码等等。