如何删除图像中的文字

问题描述 投票:0回答:1
import matplotlib.pyplot as plt
predicted_images_path = os.path.abspath("/content/predicted")
dataset_dicts_validation = DatasetCatalog.get('void-detection-2-valid')
for d in dataset_dicts_validation:
    im = cv2.imread(d["file_name"])
    outputs = predictor(im)
    v = Visualizer(im[:, :, ::-1],
                   metadata = metadata,
                   scale=0.5,
                   instance_mode=ColorMode.IMAGE_BW
    )
    out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
    fig = plt.figure(frameon=False, dpi=1)
    fig.set_size_inches(1024,1024)
    ax = plt.Axes(fig, [0., 0., 1., 1.])
    ax.set_axis_off()
    fig.add_axes(ax)
    ax.imshow(cv2.cvtColor(out.get_image()[:, :, ::-1], cv2.COLOR_BGR2RGB), aspect='auto')
    fig.savefig(f"{predicted_images_path}/{d['file_name'].split('/')[-1]}")

Segmented image

我使用 detectorron2 来训练模型并对检测到的空洞进行预测。如何仅标记分段而不使用文字的形状。

Binary image

python binary image-segmentation mask-rcnn
1个回答
0
投票
import os
import cv2
import matplotlib.pyplot as plt
from detectron2.data import DatasetCatalog
from detectron2.utils.visualizer import Visualizer, ColorMode

predicted_images_path = os.path.abspath("/content/predicted")
dataset_dicts_validation = DatasetCatalog.get('void-detection-2-valid')

for d in dataset_dicts_validation:
    im = cv2.imread(d["file_name"])
    outputs = predictor(im)
    
    # Visualize the instances without labels
    v = Visualizer(im[:, :, ::-1], metadata=metadata, scale=0.5, instance_mode=ColorMode.SEGMENTATION)
    out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
    
    # Save the modified image without labels
    cv2.imwrite(f"{predicted_images_path}/{d['file_name'].split('/')[-1]}", out.get_image()[:, :, ::-1])

在此代码中:

我们设置instance_mode=ColorMode.SEGMENTATION来可视化没有标签或文本注释的实例。 我们直接保存修改后的图像,而不使用matplotlib,以确保没有向图像添加额外的注释或标签。 通过执行此操作,您将生成仅包含检测到的形状而没有附带文字或标签的图像。可能需要根据您的数据集和用例的具体情况进行调整。

© www.soinside.com 2019 - 2024. All rights reserved.