抱歉,我使用 Mathematica,但将这个想法实现到 Matlab 中应该很容易。反正我给出代码,所以当我的描述不够详细的时候,你可以从代码中获取其余部分。
基本思想是:您按列查看图像。分别处理每一列像素。请注意,在图中,我反转了灰度值。所以黑色是 1,白色是 0。
如果你绘制(倒置的)亮度像素值,你基本上只有两种情况。第一个是,当您的列不在垂直网格线上时。情节看起来像
第二种情况是,您直接位于垂直网格线上。那么网格线影响整列的亮度
但你看到的是,你的黑暗脑电图似乎总是最大的。因此,非常复杂的算法是:遍历每一列,取最黑像素的位置。
img = ColorConvert[
ImagePad[
Import["http://i.stack.imgur.com/500Kg.jpg"], {{0, -20}, {0, 0}}],
"Grayscale"];
Image[
Transpose[Function[With[{m = Min[#]},
Map[Function[{v}, If[v == m, 1, 0]], #]]] /@
Transpose[ImageData[img, "Real"]]
]
]
请注意,我裁剪了您图像的右侧,因为那里完全是白色的。结果是
现在你可以加入这些点或以你喜欢的任何方式插入它们,你就可以得到你的 EEG