首页 > 解决方案 > 如何从一个语句中制作多个图像?

问题描述

我正在使用 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)

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

标签: pythonopencvocrtext-recognition

解决方案


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

您可以使用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)

推荐阅读