从乐谱中提取每行的度量值

2024-06-11 01:39:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道一种提取单个行度量的方法。我不确定这个算法是否已经存在,所以我想从左到右扫描乐谱,从一行度量值的上方和下方提取所有空白。在

我不是在寻找一种方法来将乐谱转换成MusicXML或提取其他有用的信息。不,基本上我要处理的是一份常规文件。我需要把段落分开。我对段落所传达的信息不感兴趣,只是将它们与文件的区域分开。在这种情况下,一段将是一行措施。我不需要单独的度量,而是每行乐谱的所有度量。在

enter image description here

这是一个输出我想从完整的乐谱,但没有标题,作曲家等。 enter image description here


Tags: 文件方法算法信息区域标题度量情况
1条回答
网友
1楼 · 发布于 2024-06-11 01:39:18

假设您在PDF文件中有乐谱,我将使用Apache PDFBox从包含乐谱的输入PDF文件中获取图像,然后定位所需的整个条的坐标,使用选定的图像定义坐标以裁剪图像并对其进行操作,直到获得所需的结果。在

PDDocument document = null; 
document = PDDocument.load(inFile); 
List pages = document.getDocumentCatalog().getAllPages();
Iterator iter = pages.iterator(); 
while (iter.hasNext()) {
            PDPage page = (PDPage) iter.next();
            PDResources resources = page.getResources();
            Map pageImages = resources.getImages();
            if (pageImages != null) { 
                Iterator imageIter = pageImages.keySet().iterator();
                while (imageIter.hasNext()) {
                    String key = (String) imageIter.next();
                    PDXObjectImage image = (PDXObjectImage) pageImages.get(key);
                    image.write2OutputStream(/* some output stream */);
                }
            }
}

下面是apachepdfbox中提供的示例代码。在

^{pr2}$

现在要裁剪图像,您可以使用:

/**
     * Crop the main image according to this rectangle, and scale it to the
     * correct size for a thumbnail.
     */
    public InputStream cropAndScale(InputStream mainImageStream,
            CropRectangle crop) {
        try {
            RenderedOp mainImage = loadImage(mainImageStream);
            RenderedOp opaqueImage = makeImageOpaque(mainImage);
            RenderedOp croppedImage = cropImage(opaqueImage, crop);
            RenderedOp scaledImage = scaleImage(croppedImage);
            byte[] jpegBytes = encodeAsJpeg(scaledImage);
            return new ByteArrayInputStream(jpegBytes);
        } catch (Exception e) {
            throw new IllegalStateException("Failed to scale the image", e);
        }
    }

它在this pageproject中可用

还有一个选项可以解析pdf文件中的图像,请看一下at this code特别是this

相关问题 更多 >