这里会给出两个代码块,第一个是批量修改图片的形状,第二个是把某一张图片按照另外一张的图片的像素点进行上下波动不能超过某一个值的操作,也就是每个点的像素值不得超过某个限定的数字。
resize图像形状~ 只有一个输入地址 和 修改resize后的大小就行
我这里是299乘以299.
#reshape 图片形状
import csv
import os
from PIL import Image
from scipy.misc import imread
from scipy.misc import imsave
import numpy as np
import scipy as sp
input_dir="/home/NEWDISK/image_5000"
i=1;
filelist = os.listdir(input_dir)
for item in filelist:
if item.endswith('.png'):
print(i);
print(item)
keda_str = input_dir + '/' + item
image_kedaa = imread(keda_str, mode='RGB')
img_resized = sp.misc.imresize(image_kedaa, [299, 299])
with tf.gfile.Open(os.path.join(input_dir, item), 'wb') as f:
imsave(f, img_resized, format='png')
i=i+1;
图像的像素限制,用一张原图把另一张图给框定,每个像素点的值不得超过eps,我这里设置了16.
from PIL import Image
import numpy as np
import os
import matplotlib.pyplot as plt
import tensorflow as tf
from scipy.misc import imread,imsave
old_address = "/home/NEWDISK/huang.png" #原图
new_address = "/home/NEWDISK/4.png" #需要改变的图
eps = 16
f=tf.gfile.Open(old_address, 'rb')
img = imread(f, mode='RGB').astype(np.float)
ff=tf.gfile.Open(new_address, 'rb')
ims = imread(ff, mode='RGB').astype(np.float)
lower_bound = np.clip(img - eps, 0, 255.)
upper_bound = np.clip(img + eps, 0, 255.)
mubiao = np.clip(ims,lower_bound,upper_bound)
f="/home/NEWDISK/shabi.png"
imsave(f, mubiao, format='png')