【问题标题】:How to make multiple images from one statement?如何从一个语句中制作多个图像?
【发布时间】:2019-08-02 03:51:40
【问题描述】:

我正在使用 openCV 和 EAST 进行文本检测。一旦我检测到带有文本的区域,我想将它们裁剪成多个图像。如何裁剪它们?

for (startX, startY, endX, endY) in boxes:

    # scale the bounding box coordinates based on the respective

    startX = int(startX * rW)
    startY = int(startY * rH)
    endX = int(endX * rW)
    endY = int(endY * rH)

    # drawing the bounding box on the image

    Final = orig[startY:endY, startX:endX]
    cv2.imshow("Text Detection", Final)
    cv2.waitKey(0)
    cv2.imwrite("test.jpg",Final)

由于它可以检测图片中的多个文本,我希望它生成多个裁剪图像但我不知道如何

【问题讨论】:

  • 您必须为文件使用不同的名称 - 现在您使用相同的名称编写所有图像,因此您可能只获得最后一张图像。
  • 欢迎来到stackoverflow。如上面评论中所述,您必须使用其他名称保存文件。以 mat 格式拍摄裁剪后的图像,并将 mat 格式转换为您选择的图像格式。

标签: python opencv ocr text-recognition


【解决方案1】:

您必须为文件使用不同的名称。

您可以使用enumerate() 和字符串格式将数字添加到文件名

for number, (startX, startY, endX, endY) in enumerate(boxes):

    # ... rest ...

    cv2.imwrite("test{}.jpg".format(number), Final)

或者至少使用变量来统计文件

number = 0

for (startX, startY, endX, endY) in boxes:

    # ... rest ...

    number += 1
    cv2.imwrite("test{}.jpg".format(number), Final)
    # or
    #cv2.imwrite("test" + str(number) + ".jpg", Final)
    # or Python 3.6+
    #cv2.imwrite(f"test{number}.jpg", Final)

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多