【发布时间】:2019-08-10 09:49:50
【问题描述】:
我想使用 Python 减小图像的大小
import numpy as np
from skimage import io
img = io.imread('img.jpg')
smallImg = img[::2, ::2]
给我原始图像的 50%,因为切片的步长为 2。我怎样才能使它成为原始图像的 90%?
常规的 python 切片对我没有帮助。似乎我不知道如何对列表进行切片,所以它会返回例如第 2、第 3、第 5、第 7 等元素。 假设我有类似的东西:
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
arr[::2]
运行上面的代码给了我:
array([1, 3, 5, 7, 9])
但是,我想与这个结果相反:
array([2, 3, 5, 6, 8, 9])
【问题讨论】:
-
你知道
:之间的字段是什么意思吗? -
arr[np.mod(np.arange(arr.size),3)!=0]会给你想要的输出 -
考虑到您想要使用切片的目的:对于图像大小调整,仅跳过像素似乎不合适。更好地寻找合适的插值方法...