-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdemo.py
executable file
·44 lines (27 loc) · 1.12 KB
/
demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from PIL import Image
import os
import numpy as np
import torch
from deform2self import deform2self, deform2self_sequence
from utils import add_gaussian_noise, img_float2int
import yaml
if __name__ == '__main__':
with open('config.yaml', 'r') as stream:
config = yaml.safe_load(stream)
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"]=config['gpu']
imgs = []
for fname in sorted(os.listdir('./data')):
imgs.append(np.array(Image.open(os.path.join('./data', fname))))
imgs = np.stack(imgs, axis=0).astype(np.float32)
imgs /= imgs.max()
imgs = torch.from_numpy(imgs).unsqueeze(1) # Tx1xHxW
noisy = add_gaussian_noise(imgs, 15)
denoised = deform2self_sequence(noisy, config) # Tx1xHxW
denoised = denoised.squeeze(1).cpu().numpy()
denoised = img_float2int(denoised)
noisy = noisy.squeeze(1).numpy()
noisy = img_float2int(noisy)
for i, (img_n, img_d) in enumerate(zip(noisy, denoised)):
Image.fromarray(img_n).save('outputs/noisy%d.png' % i)
Image.fromarray(img_d).save('outputs/denoised%d.png' % i)