检测乐谱图像中音符点的位置

Posted

技术标签:

【中文标题】检测乐谱图像中音符点的位置【英文标题】:Detecting location of music note dots in a sheet music image 【发布时间】:2021-12-20 01:46:50 【问题描述】:

我想开始一个使用非常基本的光学音乐识别形式的项目。

对于那些了解乐谱的人: 与其他 OMR 项目不同,唯一需要提取的信息是小节中每个音符的顺序和音高值。需要区分四分音符、二分音符和全音符。较短的音符可以被解释为四分音符。笔记上的点可以忽略。动态标记并不重要

适合所有人:严格来说我需要找到以下每个的位置...

...在这样的示例图像中...

我没有图像处理方面的经验,因此非常感谢您对使用什么技术或一组技术来实现这一点进行基本的概念性解释。

【问题讨论】:

可能更适合dsp.stackexchange.com 【参考方案1】:

我做了与你的工作类似的事情,相信我,这完全是一团糟。

然而,对于每个音符的音高,您从其余部分中提取头部并计算重心,并将其位置与使用 Hough 变换计算的线条位置进行比较,如前所述(假设线条已经笔直:如果不是 i认为你可以使用傅里叶变换)。

在此期间您需要一个分类算法。

【讨论】:

【参考方案2】:

我会做以下事情:

使用霍夫变换提取线位置。 (你也得到了角度)。裁剪每组行(5 行),并单独处理。

对于每组线条,您知道线条的角度,因此您可以获得分隔条形的垂直小线条的位置。在霍夫空间中再次搜索,但使用特定的角度。 (原始+ 90)。裁剪每个条并单独处理。

对于每个小节,在可能的音符上使用模板匹配(Quarter、Half 等)

【讨论】:

非常感谢安德烈,我会调查这些。没想到要在点之前寻找线条。

以上是关于检测乐谱图像中音符点的位置的主要内容,如果未能解决你的问题,请参考以下文章

基于形态学操作提取水平和垂直线条

在 MIDI 表示中,中音 C(钢琴)的正确八度值是多少?

在objective-c中检测图像的拍摄位置(位置)

如何使用相机矩阵在图像中以毫米为单位查找点的位置?

检测图像中圆圈和十字的位置

使用 Python OpenCV 检测图像中的对象位置