为了账号安全,请及时绑定邮箱和手机立即绑定

如何解码 LTTextLine.get_text() 的输出?

如何解码 LTTextLine.get_text() 的输出?

慕后森 2021-10-26 10:43:02
我是 PDFminer 的新手。我注意到在使用 PDFminer get_text() 命令时,某些符号/标点没有以文字形式输出。例如,“-”出现为“\xe2\x80\x93”,单引号 ' 出现为“\xe2\x80\x99”。这是我使用的命令:打印(LTTextLine.get_text().encode('UTF-8'))有人可以帮助我理解如何阅读这些内容,并将其转换回字面形式吗?
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

我正在扫描旧照片,我想自动化从扫描仪的(嘈杂的)纯白色背景中提取照片的过程,以便我有一张透明的照片。程序的这一部分现在可以工作了,但我还有一个小问题。


现在可以准确地检测(和提取)照片,但它会在整个照片周围的背景中留下小而清晰的黑色边框。我试图对透明蒙版应用高斯模糊,但这不会使黑色平滑(并且它使照片的边框看起来“模糊”)。


这是我必须提取照片并生成透明蒙版的代码:


# Load the scan, and convert it to RGBA.

original = cv2.imread('input.jpg')

original = cv2.cvtColor(original, cv2.COLOR_BGR2BGRA)


# Make the scan grayscale, and apply a blur.

image = cv2.cvtColor(original, cv2.COLOR_BGR2GRAY)

image = cv2.GaussianBlur(image, (25, 25), 0)


# Binarize the scan.

retval, threshold = cv2.threshold(image, 50, 255, cv2.THRESH_BINARY)


# Find the contour of the object.

contours, hierarchy = cv2.findContours(threshold, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)


largestContourArea = -1

largestContour = -1


for contour in contours:

    area = cv2.contourArea(contour)


    if area > largestContourArea:

        largestContourArea = area

        largestContour = contour


# Generate the transparency mask.

mask = numpy.zeros(original.shape, numpy.uint8)


cv2.drawContours(mask, [ largestContour ], -1, (255, 255, 255, 255), -1)


# Apply the transparency mask.

original = cv2.multiply(mask.astype(float) / 255.0, original.astype(float))


cv2.imwrite('output.png', original)

我有一个样本扫描和使用样本扫描的上述代码的结果。如您所见,照片周围有一个轻微的黑色边框,我想将其删除。


查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信