首页 > 其他分享 >根据bounding box坐标框绘制mask

根据bounding box坐标框绘制mask

时间:2024-04-24 19:36:05浏览次数:29  
标签:box image mask file bounding path folder os

根据bounding box坐标框绘制mask

import os
from PIL import Image, ImageDraw

# 定义图像和标注文件夹路径
image_folder_path = r'F:\Liang\Datasets\Text_dataset\Tampered-IC13\train_img'
annotation_folder_path = r'F:\Liang\Datasets\Text_dataset\Tampered-IC13\train_gt'

# 获取图像文件夹中的所有文件
image_files = [f for f in os.listdir(image_folder_path) if os.path.isfile(os.path.join(image_folder_path, f))]

# 遍历图像文件
for image_file in image_files:
    # 构建图像和标注文件的完整路径
    image_path = os.path.join(image_folder_path, image_file)
    annotation_file = os.path.splitext(image_file)[0] + '.txt'
    annotation_path = os.path.join(annotation_folder_path, annotation_file)

    # 打开图像文件
    original_image = Image.open(image_path)
    width, height = original_image.size

    # 创建一个新的黑色图像作为mask
    mask_image = Image.new('L', (width, height), 0)
    draw = ImageDraw.Draw(mask_image)

    # 读取标注文件并绘制bounding boxes
    with open(annotation_path, 'r') as file:
        for line in file:
            coordinates = list(map(int, line.strip().split(',')))
            x1, y1, x2, y2, _ = coordinates
            draw.rectangle([x1, y1, x2, y2], fill=255, outline=255)

    # # 使用mask图像裁剪原始图像
    # masked_image = Image.new('RGB', (width, height), 'black')
    # masked_image.paste(original_image, (0, 0), mask_image)

    # 保存masked图像
    image_file = image_file.replace('.jpg','.png')
    mask_image.save(f'./train_mask/{image_file}')
    #break
print("批量处理完成")



标签:box,image,mask,file,bounding,path,folder,os
From: https://www.cnblogs.com/lwp-nicol/p/18156154

相关文章

  • Delphi10.3如何将ListBox1项,拖动 到 右边Memo1当前输入项
    01]ListBox1的DragMode设置为dmAutomatic02】Memo1的OnGragOver事件和OnDragDrop事件 procedureTForm8.Memo1DragOver(Sender,Source:TObject;X,Y:Integer;State:TDragState;varAccept:Boolean);beginifTListBox(Source)=ListBox1thenAccept:=true;end;......
  • 使用 apache pdfbox 去除水印
    需求学习cobol过程中,找了一本电子书,但是有水印。WPS可以擦除,但是需要开通会员。能不能用java程序去除水印呢?实现先查阅一些资料,开拓视野。第一步:安装 org.apache.pdfbox:pdfbox-app:3.0.2,这是一个可执行jar,执行后可弹出Swing图形用户界面,可导入pdf文件后可查看其内部结......
  • MoneyBox
    MoenyBox渗透测试过程靶机IP:192.168.56.120端口扫描nmap-Pn-sV-sC192.168.56.120PORTSTATESERVICEVERSION21/tcpopenftpvsftpd3.0.3|ftp-anon:AnonymousFTPloginallowed(FTPcode230)|_-rw-r--r--1001093656Feb2620......
  • WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
    实现的效果如果你对此感兴趣,可以接着往下阅读。实现过程绘制矩形比如说我想绘制一个3行4列的表格:privatevoidButton_Click_DrawRect(objectsender,RoutedEventArgse){intRow=3;intCol=4;for(inti=0;i<Row;i++){......
  • Qt:通过QCompleter类提供的补全框completion box, 根据用户输入的内容提供可能的补全选
    1.创建一个字符串列表作为补全数据源QStringListwordlist;wordlist<<"apple"<<"banana"<<"orange";2.将QCompleter的数据源设置为之前创建的QStringList,与QLineEdit控件关联QCompleter*completer=newQCompleter(wordlist,this);......
  • 在Linux中,如何使用VMware和VirtualBox进行虚拟化?
    在Linux中使用VMware和VirtualBox进行虚拟化涉及多个关键步骤。下面将详细解释如何使用这两个工具进行虚拟化。一、VMware虚拟化下载安装VMware:访问VMware官方网站,下载适用于Linux的VMwareWorkstation安装包。确保选择与您的Linux发行版兼容的版本。下载完成后,按照安装向导......
  • TreeComboBox 【用户控件】
    效果如下纯粹用用户控件实现缺点:1、展开子项时候,文本框会初始化为第一项,不过在选择后就会设置成选中的选择的项。          2、只有在文本框可编辑状态下,才可以正常运行。          3、设置复杂,不太容易使用。   步骤1、设置Combobox。TreeComb......
  • delphi中Memo1下拉ListBox1选择完成文本填充
    delphi中Memo1下拉ListBox2选择完成文本填充拖一个Memo1下拉ListBox2到界面上,假设ListBox2,里已加载列名最终效果:Memo1里输入.点号,带出ListBox2,选择好列名,回车,将点号和列名输入到Memo1原位置 ......
  • label包含checkbox而checkbox不显示
    这个问题可能是由于CSS样式导致的,尤其是当你使用了定制的CSS或者是在一些框架中使用标签时。以下是一些可能的解决方法:检查CSS样式:确保没有CSS样式覆盖了checkbox的默认样式,使其不可见。可以尝试移除或注释掉相关的CSS规则,看是否能解决问题。使用label的for属性:确保label标签的......
  • 计算机软件弹出缺少ComboBox.ocx文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个ComboBox.ocx文件(挑选合适的版本文件)把它放入......