这几天在读一篇论文,文中提到“当目标图像与原始图像的长宽比不同时,传统的归一化方法会使图像变形”,它提出一种按照目标图片(模型的输入)的比例缩放输入图片,步骤如下图所示:
我将上述方法进行了复现,分为两给py文件,一个是处理文件,一个是运行文件。
1.处理文件:image_processing.py
我将处理文件封装成了类,便于使用,如下。需要说明的一点是,cv2.imwrite(path,img)无法处理带有中文的路径,只能 cv2.imencode()了。
思路:(这个py文件可以单独运行)
(1)首先使用glob()函数获得一个文件夹下的所有图片文件的地址,它的返回值就是一个列表,超级好用,不用自己再写for循环手动将文件地址添加到列表中(可以对比接下来的另一个py文件,那个是手动添加的)
(2)之后处理每一个单独的文件,获取改文件的长边和短边,按照上图中的公式计算出len和step(文中step是4,因为文中再计算步长时除以了3,这个含义是说将长边和短边的差平均分为3份,每此剪裁走一份大小(len值),分3步剪裁完,加上最开始切割的i一步,一共是四步,如下午所示。)