大批量图像处理(8)——分类前对图片预处理(包含VGG,desnet等经典分类模型)

针对一些特别的分类模型常常很麻烦,预处理不一样,这里给出几个比较麻烦处理的分类器的预处理方法
只需两个经典的库就可以完成


import cv2
import numpy as np


im = cv2.resize(cv2.imread('/home/NEWDISK/caad_images/images_round2/images_round2_images/0a1f4761dc7fe1eb.png'), (224, 224)).astype(np.float32)
#——————————————————————————————————————————
#分割线 以下为数据预处理(以Denst分类模型为例)
im[:,:,0] = (im[:,:,0] - 103.94) * 0.017
im[:,:,1] = (im[:,:,1] - 116.78) * 0.017
im[:,:,2] = (im[:,:,2] - 123.68) * 0.017


im = im.transpose((2,0,1))   #改变维度空间 由224*224*3 转换为 3*224*224
# Insert a new dimension for the batch_size
im = np.expand_dims(im, axis=0) #大批量处理图片,这个步骤可省略(默认包含图片序号),这里只有一张图片,就加一个序号

print(im.shape)

#——————————————————————————————————————————
#分割线 以下为输出前处理(没啥好说,跟上面逆推就完事了~)
im = im.transpose((0,2,3,1))   
im[0,:,:,0]=im[0,:,:,0]/0.017+103.94
im[0,:,:,1]=im[0,:,:,1]/0.017+116.78
im[0,:,:,2]=im[0,:,:,2]/0.017+123.68

print(im.shape)
cv2.imwrite('temp1.png', im[0,:,:,:])

你可能感兴趣的:(图像处理)