import astra
import matplotlib.pyplot as plt # plt 用于显示图片
import phantominator
from phantominator import shepp_logan
import numpy as np
import matplotlib.image as mpimg # mpimg 用于读取图片
import cv2
import skimage.io as io
from skimage import data_dir,color
from PIL import Image
import os
target_path='C:/Users/Administrator/Desktop/unet-denoising-dirty-documents-master/data/train_cleaned/'
all_content=os.listdir(target_path)
size=256
angle=20
for i in range(len(all_content)):
picture_path = target_path+all_content[i]
img = Image.open(picture_path)
img_1 = img.convert('L')
img_2 = img_1.resize((size, size), Image.ANTIALIAS)
img_2=np.array(img_2)
#cv2.imwrite('C:/Users/Administrator/Desktop/unet-denoising-dirty-documents-master/data/train_cleaned/' + all_content[i], img_2)
# 生成仿真投影数据的框架,包括了投影的角度个数、投影图的大小、投影束的选择等
vol_geom = astra.create_vol_geom(size, size)
proj_geom = astra.create_proj_geom('parallel', 1.0, 384, np.linspace(0, np.pi, angle, False))
# 开始投影,将投影出来的东西拼接成为正弦图
proj_id = astra.create_projector('line', proj_geom, vol_geom)
sinogram_id, sinogram = astra.create_sino(img_2, proj_id)
# 开始反投影
rec_id = astra.data2d.create('-vol', vol_geom)
cfg = astra.astra_dict('FBP')
cfg['ReconstructionDataId'] = rec_id
cfg['ProjectionDataId'] = sinogram_id
cfg['ProjectorId'] = proj_id
alg_id = astra.algorithm.create(cfg)
astra.algorithm.run(alg_id, 20)
rec = astra.data2d.get(rec_id)
cv2.imwrite('C:/Users/Administrator/Desktop/unet-denoising-dirty-documents-master/data/train/'+all_content[i], rec)
print("第"+str(i+1)+"张图片原始数据创建完成")
评论0
最新资源