嘿,我想要调整图像的大小而不拉伸它,而是添加白色像素。我查找了一些资料,但没有发现在skimage内部如何实现这个目标的说明。因此,我使用numpy将额外的像素作为[float(255)]数组添加到缩放之前。
from skimage.io import imread
from skimage.io import imsave
from skimage.transform import resize
from matplotlib import pyplot as plt
from pylab import cm
import numpy as np
from skimage import morphology
from skimage import measure
from scipy import misc
def process(file_):
im = imread(file_, as_grey=True)
#im = misc.imread(file_)
#im=np.fromfile(file_, dtype=np.int64)
#Filler to avoid stretching
orig_rows, orig_cols = im.shape
print orig_rows, orig_cols
if orig_rows < orig_cols:
for addition in range(0,orig_cols-orig_rows):
#adding white rows
lst = np.array(list(float(255) for x in range(0,orig_cols)))
im= np.vstack((im,lst))
if orig_rows > orig_cols:
for addition in range(0,orig_rows-orig_cols):
#adding white columns
lst = np.array(list([float(255)] for x in range(0,orig_rows)))
im= np.hstack((im,lst))
image = resize(im, (48, 48))
imsave('test.jpg',im)
imsave('test1.jpg',image)
plt.imshow(im, cmap=cm.gray)
plt.show()
当我使用pyplot查看图像时,它看起来像这样:
我们可以看到列已经被添加了,但是当我保存图像时,
image = resize(im, (48, 48))
imsave('test.jpg',im)
imsave('test1.jpg',image)
图片看起来像是底片,缩放后的图片完全变成了白色(在网站背景上与黑色相比几乎无法看到)。有什么想法吗?