CSNet-Pytorch
CSNet-Pytorch copied to clipboard
绘制图像
请问想看重构的图像应该怎么写程序呢,我将输入的图像转换成tensor了直接调进net里输出,但是画不出图像,请问可以看看您写的看重构效果图片的程序吗,谢谢
很高兴对我的工作感兴趣。想要保存重建图片,你需要把tensor 转为 PILImage, 可以用力torchvision利用的工具。
print(image.size()) # (C,H, W), 通道顺序(R,G,B) unloader = transforms.ToPILImage() def tensor_to_PIL(tensor): image = tensor.cpu().clone() image = image.squeeze(0) image = unloader(image) return image model = CSNet(32, 0.1) res = model(image) net = CSNet() out = net(image) print(out.size()) out = out.squeeze(0)
image = tensor_to_PIL(out)
img = ToPILImage()(out)
img.show 我在前面将读入的图像变换为【1,1,512,512】的张量,经过网络的输出仍然是这个尺寸,但是转换成PIL一直不显示图像,只有两个尺寸的输出 <built-in method size of Tensor object at 0x00000276E748ED00> torch.Size([1, 1, 512, 512]) torch.Size([1, 1, 512, 512]) 所以想着您有代码我可以参考一下吗,非常感谢,因为想了好几种办法还是没画出来,谢谢
print(image.size()) # (C,H, W), 通道顺序(R,G,B) unloader = transforms.ToPILImage() def tensor_to_PIL(tensor): image = tensor.cpu().clone() image = image.squeeze(0) image = unloader(image) return image model = CSNet(32, 0.1) res = model(image) net = CSNet() out = net(image) print(out.size()) out = out.squeeze(0)
image = tensor_to_PIL(out)
img = ToPILImage()(out)
img.show 我在前面将读入的图像变换为【1,1,512,512】的张量,经过网络的输出仍然是这个尺寸,但是转换成PIL一直不显示图像,只有两个尺寸的输出 <built-in method size of Tensor object at 0x00000276E748ED00> torch.Size([1, 1, 512, 512]) torch.Size([1, 1, 512, 512]) 所以想着您有代码我可以参考一下吗,非常感谢,因为想了好几种办法还是没画出来,谢谢
就是用ToPILImage(), 你可以转为PILImage之后用save函数保存图片,然后再查看。我没有用过show。
很高兴收到您的回复,我刚刚尝试了save,但是保存的图片是一片空白,请问有什么解决办法吗,不知道是哪里出了问题,学习
import matplotlib.pyplot as plt from matplotlib.image import imread from net import CSNet import torchvision import numpy as np from Data import calculate_valid_crop_size from PIL import Image from torchvision import transforms import scipy.io as sio import torch import cv2 from torchvision.transforms import ToPILImage
image_name = cv2.imread('E://pytoch_study01//CS//datasets//baby_GT.bmp') # PIL的JpegImageFile格式(size=(W,H)) image_name = cv2.cvtColor(image_name, cv2.COLOR_RGB2GRAY) image_name = cv2.normalize(image_name, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F)
loader使用torchvision中自带的transforms函数
loader = torchvision.transforms.Compose([torchvision.transforms.ToTensor()])
image = loader(image_name).unsqueeze(0)
print(image.size) # (W,H) print(image.size()) # (C,H, W), 通道顺序(R,G,B) unloader = transforms.ToPILImage() def tensor_to_PIL(tensor): image = tensor.cpu().clone() image = image.squeeze(0) image = unloader(image) return image model = CSNet(32, 0.1) res = model(image) net = CSNet() out = net(image) print(out.size()) out = out.squeeze(0)
image = tensor_to_PIL(out)
img = ToPILImage()(out)
img.show
from matplotlib import pyplot
pyplot.savefig('sample_result.png', bbox_inches='tight')
您好,这是我想要显示重建后图像的程序,不知道是哪里出了问题,请问可以指教一下吗,或者您有成功保存重建图像的程序吗,想参考一下,非常感谢!
很高兴收到您的回复,我刚刚尝试了save,但是保存的图片是一片空白,请问有什么解决办法吗,不知道是哪里出了问题,学习
我不确定是什么原因,你可以查看一下值的范围,是不是图片像素越界了。
import matplotlib.pyplot as plt from matplotlib.image import imread from net import CSNet import torchvision import numpy as np from Data import calculate_valid_crop_size from PIL import Image from torchvision import transforms import scipy.io as sio import torch import cv2 from torchvision.transforms import ToPILImage image_name = cv2.imread('E://pytoch_study01//CS//datasets//baby_GT.bmp') # PIL的JpegImageFile格式(size=(W,H)) image_name = cv2.cvtColor(image_name, cv2.COLOR_RGB2GRAY) image_name = cv2.normalize(image_name, None, alpha=0, beta=1, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_32F) # loader使用torchvision中自带的transforms函数 loader = torchvision.transforms.Compose([torchvision.transforms.ToTensor()]) image = loader(image_name).unsqueeze(0) print(image.size) # (W,H) print(image.size()) # (C,H, W), 通道顺序(R,G,B) unloader = transforms.ToPILImage() def tensor_to_PIL(tensor): image = tensor.cpu().clone() image = image.squeeze(0) image = unloader(image) return image model = CSNet(32, 0.1) res = model(image) net = CSNet() out = net(image) print(out.size()) out = out.squeeze(0) # image = tensor_to_PIL(out) img = ToPILImage()(out) # img.show from matplotlib import pyplot pyplot.savefig('sample_result.png', bbox_inches='tight') 您好,这是我想要显示重建后图像的程序,不知道是哪里出了问题,请问可以指教一下吗,或者您有成功保存重建图像的程序吗,想参考一下,非常感谢!
img = ToPILImage()(out) img.save('sample_result.png')
我用的是测试的那几张图像,512x512的,想不明白,请问可以传一份保存图像的代码吗,非常感谢