Python中是否有一个resize函数来调整图像的大小tf.image.resize_图像张量流函数?

2024-09-30 10:32:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个4D序列的图像数据,它被组织为[NumberOfImages,RowsOfImageColumnsOfImage,ChannelsOfImage]。在

现在,我想将4D数组中的图像调整为新的大小,即[NumberOfImages,NewRowsOfImageNewColumnsOfImage,ChannelsOfImage]的大小,而其他维度保持不变。在

我知道有一个函数tf.image.resize_图像在TensorFlow中执行此操作。如果新图像比原始图像大,则使用双线性插值或最近邻插值来填充新图像。在

然而,图像数据在调整大小后被转换成张量流的张量对象。那我就得把它换回去。这些程序将花费大量时间。在

我试过了skimage.transform.resize,但此函数似乎可以调整二维图像数据的大小。如果我使用这个函数,我必须使用一个for循环,这也将花费大量的时间。在

那么Python中是否有一个与tf.image.resize_图像张量流函数?如果没有,谁能给我一些建议来解决我的问题?在

非常感谢。在


Tags: 数据函数图像imagetf时间序列数组
1条回答
网友
1楼 · 发布于 2024-09-30 10:32:48

使用numpy.resize。参见下面的示例。所有图像都具有相同的形状(在本例中为768x102x3)。在本例中,我将行号与列号进行了切换。im_all是你的4d数组。在

from scipy.misc import imread
import numpy as np
import matplotlib.pyplot as plt
f = r"C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg"
im0 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\koala.jpg"
im1 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\tulips.jpg"
im2 = imread(f)
f = r"C:\Users\Public\Pictures\Sample Pictures\desert.jpg"
im3 = imread(f)
im_all = np.array([im0, im1, im2, im3])
im_all_b = np.resize(im_all, [im_all.shape[0], im_all.shape[2], im_all.shape[1], im_all.shape[3]])
plt.figure()
plt.imshow(im_all_b[1])
plt.figure()
plt.imshow(im_all[1])
plt.show()

下面是一个使用内存使用优化的插值(默认为bilinear,请参见:http://docs.scipy.org/doc/scipy-0.16.1/reference/generated/scipy.misc.imresize.html)示例:

^{pr2}$

在上面的例子中,我在x轴和y轴上各添加200个像素。在

相关问题 更多 >

    热门问题