import numpy as np
import matplotlib.pyplot as plt
import os.path
from utils import save_png_no_bounds
from constants import EDGESHARPNESS_ROIS

input_dir = "/media/metzner/Z/Data/Head/forbild-phantoms/simresults/1noise"
file_stub = "999frms_5e+06flux_1noise_{}filter_fdk.raw"

FMODES = ["pre", "post"]
# fig, axes = plt.subplots(1, 2)
# i = 0

for fm in FMODES:
    fname = file_stub.format(fm)
    volume = np.fromfile(os.path.join(input_dir, fname), dtype=np.float16).reshape((250, 512, 311))
    x0, x1, y0, y1, s0, s1 = EDGESHARPNESS_ROIS["central-w10"]
    slice_index = (s0 + s1) // 2
    roi = volume[slice_index, x0:x1, y0:y1]
    # """
    save_png_no_bounds("jaw_edge_sharpness_rois-{}".format(fm), roi, subdir="jaw", vmin=-0.1, vmax=1.2)
    # """
    # axes[i].imshow(roi, cmap="gray", vmin=-0.1, vmax=1.2)
    # axes[i].set_title(fm)
    # i += 1
# plt.show()
        "unfiltered",
        "prefiltered",
        "postfiltered"
        ]
ROIS = {}

for fmode in FILTER_MODES:
    volume = np.fromfile(
            os.path.join(input_dir_raw, "{}_float32.raw".format(fmode)),
            dtype=np.float32).reshape((312, 512, 512))
    roi = volume[91, 220:340, 370:480]
    ROIS[fmode] = roi
    continue
    save_png_no_bounds(
            "../figures/johann/{}_roi.png".format(fmode),
            roi,
            vmin=0.1,
            vmax=0.35
            )

DIFFS = [
        ("prefiltered", "unfiltered"),
        ("postfiltered", "unfiltered"),
        ("prefiltered", "postfiltered")
        ]

for diff_a, diff_b in DIFFS:
    diff = ROIS[diff_a] - ROIS[diff_b]
    #fig = plt.figure()
    #plt.imshow(diff, cmap="gray", interpolation="none", vmin=-0.01, vmax=0.01)
    #plt.grid(False)
    #plt.axis('off')
Example #3
0
simple_backprojection = iradon(
        sinogram,
        theta=angles,
        filter=None,
        output_size=phantomSize
        )

filtered_backprojection = iradon(
        sinogram,
        theta=angles,
        filter="ramp",
        output_size=phantomSize
        )


fig, axes = plt.subplots(1, 3)
images = [phantom, simple_backprojection, filtered_backprojection]
names = ["phantom", "sbp", "fbp"]

for ax, img, name in zip(axes, images, names):
    save_png_no_bounds(
            "bp-demo-"+name,
            img,
            vmin=0,
            vmax=100 if name == "sbp" else 1
            )
    #ax.imshow(img, cmap="gray", interpolation="none")

#plt.tight_layout()
#plt.show()
Example #4
0
input_dir = "/media/metzner/Z/Data/Head/forbild-phantoms/simresults/1noise"
file_stub = "{frames}frms_{flux}flux_1noise_nofilter_fdk.raw"

FLUXES = ["5e+05", "5e+08"]
FRAMES = [239, 999]

#fig, axes = plt.subplots(1, 4)
#i = 0

for fl in FLUXES:
    for fr in FRAMES:
        fname = file_stub.format(frames=fr, flux=fl)
        volume = np.fromfile(
                os.path.join(input_dir, fname),
                dtype=np.float16).reshape((250, 512, 311))
        slices = NOISELEVEL_ROIS["peripheral"]
        slice_index = (slices[0].start + slices[0].stop) // 2
        roi = volume[slice_index, slices[1], slices[2]]
        save_png_no_bounds(
                "jaw_noise_level_rois-{}-{}".format(fr, fl),
                roi,
                subdir="jaw",
                vmin=0.7,
                vmax=1.3
                )
        #axes[i].imshow(roi, cmap="gray", vmin=0.7, vmax=1.3)
        #axes[i].set_title("{} {}".format(fr, fl))
        #i += 1
#plt.show()