用pytorch将图片变成原来的1/2。代码
时间: 2023-04-02 10:01:58 浏览: 100
可以使用以下代码将图片缩小为原来的一半:
```python
import torch
import torchvision.transforms as transforms
from PIL import Image
# 加载图片
img = Image.open("image.jpg")
# 定义变换
transform = transforms.Compose([
transforms.Resize((img.size[1]//2, img.size[]//2)),
transforms.ToTensor()
])
# 应用变换
img_tensor = transform(img)
# 显示图片
import matplotlib.pyplot as plt
plt.imshow(img_tensor.permute(1, 2, ))
plt.show()
```
其中,`transforms.Resize` 可以将图片大小调整为指定大小,这里将图片大小调整为原来的一半。`transforms.ToTensor` 可以将 PIL 图片转换为 PyTorch 张量。最后,使用 `matplotlib` 显示缩小后的图片。
相关问题
pytorch使用已经训练好的库MobileNet v2识别图片,代码
下面是使用已经训练好的库MobileNet v2识别图片的代码:
```python
import torch
import torchvision.models as models
import torchvision.transforms as transforms
from PIL import Image
# 加载 MobileNet v2 模型
model = models.mobilenet_v2(pretrained=True)
# 定义图片变换方式
transform = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.485, 0.456, 0.406],
std=[0.229, 0.224, 0.225])
])
# 加载图片
img = Image.open("test.jpg")
# 对图片进行变换
img_t = transform(img)
batch_t = torch.unsqueeze(img_t, 0)
# 计算模型输出
model.eval()
out = model(batch_t)
# 获取输出中的最大值及其索引
_, index = torch.max(out, 1)
# 加载预测标签文件
with open("imagenet_classes.txt") as f:
classes = [line.strip() for line in f.readlines()]
# 打印预测结果
print(classes[index])
```
其中,`models.mobilenet_v2(pretrained=True)`加载了已经经过 ImageNet 数据集训练好的 MobileNet v2 模型。变换方式`transform`将图片变换为模型输入所需要的格式。`torch.unsqueeze(img_t, 0)`将图片添加了一个 batch 维度,使其变为 4 维张量,可以输入到模型中进行计算。`torch.max(out, 1)`获取输出中的最大值及其索引,即为预测结果。最后,将预测结果与预测标签文件中的类别对应起来,即可输出预测结果。
pytorch白底黑子图片转换为黑底白字
可以使用以下代码将白底黑子的图片转换为黑底白字:
```python
import torch
from torchvision import transforms
from PIL import Image
# 加载图片并转换为张量
img = Image.open('white_bg_black_text.png')
transform = transforms.Compose([transforms.ToTensor()])
img = transform(img)
# 反转颜色
img = 1 - img
# 保存图片
img = transforms.ToPILImage()(img)
img.save('black_bg_white_text.png')
```
这段代码首先使用PIL库加载图片,并使用torchvision中的transforms将其转换为张量。然后,通过对张量中的每个像素值进行反转,将白色变为黑色,黑色变为白色。最后将反转后的张量转换为PIL图像,并保存为新的黑底白字图片。