Я пытаюсь определить сгустки текста в файле PDF.Например, в академической статье есть разные разделы, и я хочу обозначить заголовок как раздел, авторов и адреса как раздел, а реферат - как раздел.
Я думаю, что одним из решений является использование cv2.Сначала я преобразовываю pdf в изображение, используя Wand, используя следующие коды:
from wand.color import Color
from wand.image import Image as Img
with Img(filename='./files/paper.pdf', resolution=300) as img:
img.background_color = Color("white")
img.alpha_channel = 'remove'
img.save(filename='test_file.jpg')
Однако, когда я пытаюсь открыть файл jpg в cv2 с помощью:
image = cv2.imread('test_file.jpg')
print image
, распечатка показываетчто все значения в этом изображении равны 255 для всех пикселей.
array([[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
...,
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]],
[[255, 255, 255],
[255, 255, 255],
[255, 255, 255],
...,
[255, 255, 255],
[255, 255, 255],
[255, 255, 255]]], dtype=uint8)
А потом, когда я захочу использовать cv2.dnn.blobFromImage (), оно просто не получится правильно.
Что происходит?Было ли это потому, что PDF не был правильно преобразован в изображение?Но я попробовал
from PIL import Image
text = pytesseract.image_to_string(Image.open('test_file.jpg'))
, он вернул мне весь текст ...