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