【计算机视觉】数据预处理 |
您所在的位置:网站首页 › 如何调整图片大小尺寸 › 【计算机视觉】数据预处理 |
问题
在做CNN的时候,大部分的神经网络模型要求输入的图片大小是固定的。但是由于数据来源的不同,大多数情况下会遇到数据集的图片大小不统一的问题。 比如下面这张图片的大小是333*500,现在要处理为256*256大小的图片。 (333, 500, 3) 解决办法常用的方法有三种。 crop和pad是两种传统的办法。spp net(Spatial Pyramid Pooling 空间金字塔池化)是一种新的解决方案。 安装文章相关的Python库 pip install Pillow numpy opencv-python cropcrop是一种常用的图片预处理方法。这个方法会改变原来的图像,截取主要的信息,忽略其他信息。 下面通过图片来理解这种方法。 width, high, channel = img.shape width_new, high_new = (256, 256) img_crop = img[width-width_new:, (high-256)//2:high-((high-256)//2),:] print(img_crop.shape)(256, 256, 3) 使用的是numpy的二维数据切片。 padpad是一种填充方法,在图片的四周填充指定的值。这种方法不会改变原来的数据的形态,不会丢失图像的原始信息。 首先将图片的长和宽统一为max(width, hight)的大小。 # 计算长和宽的差值 dim_diff = np.abs(high - width) # 计算上下左右分别需要填充多少个维度 pad1, pad2 = dim_diff // 2, dim_diff - dim_diff // 2 pad = (0, 0, pad1, pad2) if high |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |