Python Numpy调整图像大小
我想拍摄一张图像,改变图像的比例,而它是一个numpy数组。 我想使用本机NumPy函数,不带PIL、cv2、SciPy等 现在我有这个:Python Numpy调整图像大小,python,numpy,multidimensional-array,Python,Numpy,Multidimensional Array,我想拍摄一张图像,改变图像的比例,而它是一个numpy数组。 我想使用本机NumPy函数,不带PIL、cv2、SciPy等 现在我有这个: from copy import copy import numpy as np from scipy import misc img = misc.face() # racoon from SciPy(np.ndarray) img2 = copy(img) # copy of racoon, because misc.face() is Desc
from copy import copy
import numpy as np
from scipy import misc
img = misc.face() # racoon from SciPy(np.ndarray)
img2 = copy(img) # copy of racoon, because misc.face() is Descriptor(?)
img2.shape() # (768, 1024, 3)
我需要的形状=(30724096,3)
我可以很容易地用枕头
CONVERT_IMAGE = Image.fromarray(img.astype('uint8'), 'RGB')
CONVERT_IMAGE = CONVERT_IMAGE.resize((4096, 3072), Image.NEAREST)
IMAGE_AS_ARRAY = np.asarray(CONVERT_IMAGE)
IMAGE_AS_ARRAY.shape # 3072 4096 3
但是我真的需要只使用NumPy函数,而不使用其他lib
你能帮我吗?我在NumPy和3D阵列方面非常弱仅限于使用某些比例因子进行整整数放大,并且没有实际插值,您可以使用两次来获得所描述的结果:
将numpy导入为np
#带形状的原始图像(4、3、3)
img=np.random.randint(0,255,(4,3,3),dtype=np.uint8)
#整整数放大的比例因子
n=4
#实际放大(结果为某些具有形状(16、12、3)的图像)
img_up=np.repeat(np.repeat(img,n,轴=0),n,轴=1)
#输出
打印(img[:,:,1],“\n”)
打印(img_up[:,:,1])
以下是一些输出:
[[148 242 171]
[247 40 152]
[151 131 198]
[ 23 185 144]]
[[148 148 148 148 242 242 242 242 171 171 171 171]
[148 148 148 148 242 242 242 242 171 171 171 171]
[148 148 148 148 242 242 242 242 171 171 171 171]
[148 148 148 148 242 242 242 242 171 171 171 171]
[247 247 247 247 40 40 40 40 152 152 152 152]
[247 247 247 247 40 40 40 40 152 152 152 152]
[247 247 247 247 40 40 40 40 152 152 152 152]
[247 247 247 247 40 40 40 40 152 152 152 152]
[151 151 151 151 131 131 131 131 198 198 198 198]
[151 151 151 151 131 131 131 131 198 198 198 198]
[151 151 151 151 131 131 131 131 198 198 198 198]
[151 151 151 151 131 131 131 131 198 198 198 198]
[ 23 23 23 23 185 185 185 185 144 144 144 144]
[ 23 23 23 23 185 185 185 185 144 144 144 144]
[ 23 23 23 23 185 185 185 185 144 144 144 144]
[ 23 23 23 23 185 185 185 185 144 144 144 144]]
----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.8.5
努比:1.19.2
----------------------------------------
numpy
不做那种大小调整。它需要某种插值,这是图像库开发的。@hpauji tnx for ur anwer,但我在Internet上的一些资源中发现numpy图像大小降级。但是我找不到任何图像大小的扩展。您可以切掉一部分值,或者如答案所示复制值。但是图像软件可以做更复杂的调整大小-平均值,平滑图像等等。不,汉斯,我不能这样做。第三块是RGB颜色,第三块的长度必须是3,不是12。谢谢你的回答。在我的解决方案中,第三维度仍然是3
?你从(768,1024,3)升级了吗
到(30724096,3)
,如果我从(7681024,3)
开始,我也会这样做。另外,请注意,我只输出一个通道的最终结果-为了可读性。