裁剪图片转换坐标

为使图片变成正方形,采用最小边裁剪方法,根据宽度和高度裁剪,无需转换坐标系。裁剪后标签框中心坐标及尺寸相应调整,解决训练集与测试集表现差异问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将版才建成方形,需要把对应的标签框的坐标也改了,选择最简单的裁剪方法,依照宽度和高度的较小值裁剪,这样不用转换坐标系,宽大就裁成高高的图片,高大就裁成宽宽的图片,这样标签框的中心坐标,和宽高的压缩也只用动相应的部分就可以了。
数据太少,图片也太单一,目前总出现训练集表现良好,测试集差。

import numpy as np
import os
import cv2
from math import *


def crop_images(path):
    image_dir = path
    pathDir = os.listdir(image_dir)
    print(pathDir)
    for s in pathDir:
        print(s)
        newDir = os.path.join(image_dir, s)
        print(newDir)
        if os.path.isfile(newDir):
            if os.path.splitext(newDir)[1] == ".jpg":
                filename = int(os.path.basename(newDir)[:-4])
                img = cv2.imread(newDir)
                h = img.shape[0]
                print(h)
                w = img.shape[1]
                print(w)
                if h >= w:
                    img_crop = img[0:w, 0:w]
                if h <= w:
                    img_crop = img[0:h, 0:h]
                cv2.imshow("crop_img", img_crop)
                # cv2.waitKey(5)
                cv2.imwrite("D:/learn/lianxi/python_cnn/save2/"+str(filename)+'.jpg', img_crop)
                # return w, h


def txt_zuobiaohaiyuan(path, yuantu_w=748, yuantu_h=1024):
    image_dir = path
    pathDir = os.listdir(image_dir)
    print(pathDir)
    for s in pathDir
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值