1.一种位图转换为音乐旋律的方法,其特征在于,通过图形化编程语言程序实现,包括以下步骤:步骤1,建立音高排列表:
在音名‑频率对照表中选取若干音名,在图形化编程语言程序中建立一个数组控件,将选取的音名对应的频率输入矩阵,并根据频率高低顺序将音名依次排列,得到音高排列表;
步骤2,设置乐曲播放参数:
建立两个数值控件,分别用于设置单一音符的延音时长和播放音符的数目;
步骤3,读取位图图像的特征信息:
通过图像读取模块读取位图图像,并获取位图图像的灰度直方图;
步骤4处理位图图像信息:
使用循环语句读取任意横坐标对应的纵坐标数值,每循环一次读取一个纵坐标数值,并按照如下公式将读取的纵坐标数值转化成音高索引号,N=A‑[A/f ]×f (1)其中A为灰度直方图中任意一个横坐标对应的纵坐标的数值,N为索引号,f为选取音名的数目;
步骤5,播放音乐旋律:
将步骤4中生成的索引号按生成顺序输入索引控件,通过索引控件在音高排列表中提取对应的音高,将输出的音高信息通过蜂鸣器播放出来,以此播放一系列具有不同音高的音,形成一段音乐旋律。
2.根据权利要求1所述的位图转换为音乐旋律的方法,其特征在于,所述图形化编程语言程序为LabVIEW程序,所述图像读取模块为LabVIEW程序中的IMAQ模块,所述循环语句为For循环,所述将纵坐标数值转化成音高索引号采用UnbundlebyName控件,所述索引控件为IndexArray控件。
3.根据权利要求1所述的位图转换为音乐旋律的方法,其特征在于,所述步骤2播放的音符的数目为0~256个。
4.根据权利要求2所述的位图转换为音乐旋律的方法,其特征在于,对于某一张位图,控制步骤4中所述for循环读取固定的一组纵坐标数值,使该位图对应一段固定的旋律。