PIL reshape
时间: 2023-10-23 13:16:06 浏览: 225
在PIL库中,可以使用`Image.resize()`方法来改变图像的尺寸。如果需要调整图像的宽度和高度,可以使用该方法的第一个参数指定输出图像的尺寸,第二个参数指定缩放的方法。常用的缩放方法有:
- `Image.NEAREST`:最近邻插值
- `Image.BOX`:箱形滤波
- `Image.BILINEAR`:双线性插值
- `Image.HAMMING`:汉明窗滤波
- `Image.BICUBIC`:双三次插值
- `Image.LANCZOS`:Lanczos窗滤波
示例代码如下:
```python
from PIL import Image
img = Image.open('test.jpg')
resized_img = img.resize((256, 256), Image.BILINEAR)
resized_img.show()
```
在上述代码中,`test.jpg`为原始图像的文件名,`(256, 256)`为目标尺寸,`Image.BILINEAR`为缩放方法。执行`resized_img.show()`语句可以显示缩放后的图像。
相关问题
kmeans = KMeans(n_clusters=2, init='k-means++', random_state=0).fit(X) labels = kmeans.labels_ print(labels) segmented_img = labels.reshape(img.shape) pil_image = Image.fromarray(segmented_img, 'L') pil_image.save('D:\\gray_image.png')
这段代码使用了K-means算法对输入的图像进行分割。首先,通过调用KMeans函数创建一个KMeans对象,设定聚类数为2,采用k-means++算法进行初始化,并设置随机种子为0。然后,对输入的图像数据X进行聚类,并获取每个数据点所属的簇标签。最后,将簇标签重新排列成与原始图像相同的形状,并将其保存为灰度图像。如果需要了解更多关于K-means算法的内容,可以参考相关资料。
sys.path.append(os.pardir) import os import sys import numpy as np from dataset.mnist import load_mnist from PIL import Image def img_show(img): pil_img = Image.fromarray(np.uint8(img)) pil_img.show() (x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False) img = x_train[0] label = t_train[0] print(label) print(img.shape)#784 img = img.reshape(28, 28)#把图像形状变为原来的尺寸 print(img.shape)#(28,28) img_show(img)
这段代码的作用是导入需要的模块和数据集,然后定义了一个函数img_show用于显示图像。load_mnist函数用于加载MNIST数据集,其中flatten=True表示将图像展开成一维数组,normalize=False表示不对图像进行归一化处理。接着从训练集中取出第一张图像和对应的标签,并打印出来。最后,调用img_show函数显示图像。
阅读全文