图像均匀裁剪并修改对应的labelme标注文件

本文介绍了如何使用Python对大尺寸图像进行分块裁剪,并根据labelme标注的JSON文件相应地调整小图的标注,以提高深度学习模型在小目标上的训练效果。

因为在大图上进行使用labelme进行了标注,但在实际训练过程中发现大图(大概4000x4000)训练的结果并不好,小目标尺寸相比之下非常小(50x50),所以考虑将大图进行裁剪后再进行训练,同时根据已经标注好的json格式文件生成对应的小图的标注。

#将一整张大图切分成多张小图并修改对应的json标注

import cv2
import json
import os

# 读取大图的JSON文件
def splitImgandJson(IPath_json, IPath_img, OPath_json, OPath_img):

    events = os.listdir(IPath_json)

    #循环处理每一张图像和标注
    for onevent in events:
        name = onevent.split('.json')[0]
        img_name = name + '.jpg'

        with open(os.path.join(IPath_json, onevent), 'r') as json_file:
            large_json_data = json.load(json_file)

        # 读取大图的JPEG图像
        large_image = cv2.imread(os.path.join(IPath_img, img_name))

        # 定义每个小图的大小
   
        crop_width, crop_height = 500, 500  # 可以根据需要调整大小

        # 循环裁剪图像并生成新的JSON文件
        L_H = large_image.shape[0]
        L_W = large_image.shape[1]
        for i in range(0, L_H, crop_height):
            for j in range(0, L_W, crop_width):
                # 裁剪图像
                sma
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值