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

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

被折叠的 条评论
为什么被折叠?



