制作数据集时的图像裁剪

由于发布的图像数据集分辨率大小不一,并且图像存在大黑边,这样会导致图像在输入进网络之前有各种尺寸的图像,并且resize之后关注的区域会被压缩或者拉伸。因此,我们考虑到将图像进行裁剪以尽可能地保证输入图像为同一类型的尺寸输入

这里图像比较特殊,背景几乎为全0。这里,我们使用了阈值分割来提取图像的坐标

import pandas as pd
from PIL import image
from pylab import *
from skimage import transform
import scipy.misc

def crop_and_resize(img, rows, cols):
    #输入前的转为array
    # Image crop
    image_gray = np.mean(img, 2) #转为灰度图
    img_coord = np.where(img_gray>0) #找到前景区域内不为0的坐标保存在img_coord里面
    img_row = img_coord[0] #保存x值的array
    img_col = img_coord[1] #保存y值的array
    row_lo = np.min(img_row)
    row_hi = np.max(img_row)
    col_lo = np.min(img_col)
    col_hi = np.max(img_col)

    img_crop = img[row_lo:row_hi,col_lo:col_hi,:]
    
    ######   Image resize
    ## 这里用了transform来调整array尺寸
    img_crop_resize = transform.resize(img_crop,(rows,cols))
    
    return img_crop_resize
    
    

通过这样一种简单的方法实现数据集图像的裁剪和resize

后面将处理之后的图像保存在本地供访问

在保存图的时候又调用了另一个库scipy.misc

scipy.misc.imsave('path',img_crop_resize)

后面再从文件夹里面读取数据就行了。

应该还有更好的方法,这里只是作为可以实现的一种方案。 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值