一些快速的想法:
去除灰度噪点:进行低通滤波(暗色),因为音乐比很多噪音更暗。剩余的噪音主要是垂直线。
旋转图像:对图像的每一列求灰度值之和,得到一个向量表示该列的像素亮度总和。使用梯度下降或搜索图像的旋转角度(在+/- 15度旋转范围内)来最大化该向量的方差。这里的想法是垂直噪音线表示垂直对齐,所以我们希望图像的列与这些噪音线对齐(= 最大化方差)。
去除垂直线噪声:旋转后,取每列的中位数值。离该中位暗度值更远(平方差异)的像素,我们越有信心它是其真实颜色(例如,当垂直噪音为灰色时,一个纯白色或黑色像素)。由于噪音不是白色的,可以尝试通过中位数的白度混合此距离,作为替代置信度指标。理想情况下,我认为你需要训练某个7x7x2卷积过滤器(2个通道是像素值和距离中位数)来估计像素的真实值。那将是最简单的机器学习方法,而不是使用一些成熟的NN。然而,考虑到你缺乏训练数据,我们必须为像素值的真实价值创造自己的启发式算法。你可能需要尝试一下,但这里是我认为可能会起作用的: