cv2 将 ä ö ü 重命名为 ae oe ue

cv2 rename ä ö ü to ae oe ue

在代码中,我将多个单页 PDF 转换为 PNG 格式。转换本身适用于 cv2,但遗憾的是许多文档 (PDF) 名称包含德语变音符 (ä,ö,ü),而 PNG 最终具有特殊字符。

示例:将 PDF (lösung_122.png) 转换为 PNG 后,它看起来像这样“lösung_122.png”。 应该是loesung_122.png.

我想将文档标题中的所有这些字符 (ä,ö,ü) 替换为 ae、oe、ue。

我如何调整我的代码来实现这个目标?我有什么选择?也许有一种方法可以在转换文档 (PDF) 之前重命名它们?

from pdf2image import convert_from_path
import os
import cv2


if __name__ == '__main__':

    # Init
    dir_name = os.getcwd()
    path_pdf = dir_name + '/data/doc/October' #Folder containing all documents (PDF)
    save_path = dir_name + '/data/blanko/' #Folder with all converted doc (PNG)

    # Loop sub Folders:
    files = os.listdir(path_pdf)
    for pdf_file in files:

        # Check if PDF file
        if pdf_file[-3:] == 'pdf':
            images = convert_from_path(path_pdf + '/' + pdf_file, dpi=300, poppler_path='C:/Develop/poppler-0.68.0_x86/poppler-0.68.0/bin')

            # Save Images
            images[0].save(save_path + 'tmp.png', 'PNG')
            img = cv2.imread(save_path + 'tmp.png')
            cv2.imwrite(save_path + pdf_file[:-4] + '.png', img)

感谢任何帮助

此致

我是 cv2.imwrite() 中的一个错误,它正在破坏你给它的名字。你可以试试这个来解开名字:

    result = os.path.join(save_path, os.path.splitext(pdf_file)[0] + '.png')
    cv2.imwrite(result, img)
    os.rename(result.encode().decode('mbcs'),result)

这会将损坏的文件重命名为原始文件。请注意,这不会删除变音符号,因为 Windows 可以处理名称中的那些字符。

但请注意,它只能恢复以您的本地编码表示的字符,可能是 Windows-1252。