Dear all,
Recently I have looking for a way to extract EDW Varian Wedge profiles and wedge factors from EPID images. Any suggestion would be appreciated.
Hi,
I think there is no pylinac module for that task. There is documentation for creating your own tool with pylinac:
https://pylinac.readthedocs.io/en/latest/pylinac_core_hacking.html
You could also just use pydicom to extract the data you need. Here is an example I use to analyse our dosimetry m test (varian linac, integrated image):
“”"
import numpy as np
import pydicom
from zipfile import ZipFile
from pydicom.pixel_data_handlers.util import apply_modality_lut
#zip file with images from 0, 90, 180, 270 degree
zname = r’/path/to/zip/DoseM.zip’
#list for mean center values
center_results = {}
opening the zip file in READ mode
with ZipFile(zname, ‘r’) as zip:
#loop over all files in zip archive
for file in zip.namelist():
#get filehandle from zip
dcm_file = zip.open(file)
#read file with pydicom
ds = pydicom.dcmread(dcm_file)
#get pixel data
arr = ds.pixel_array
#define center:
dim_y = int(arr.shape[0]/2)
dim_x = int(arr.shape[1]/2)
#apply cu calibration
cu = apply_modality_lut(arr, ds)
#get center part of irradiated area (~16mm x 32mm)
roi = cu[(dim_y-40):(dim_y+40),(dim_x-20):(dim_x+20)]
#calculate mean pixel value of center part
dm_mean = np.mean(roi)
#add mean value to list
center_results[round(ds.GantryAngle,0)] = dm_mean
#print(center_results)
#calculate dose deviation from 0deg beam (%)
dev_90 = (center_results[0.0] - center_results[90.0])/center_results[0.0] * 100
dev_180 = (center_results[0.0] - center_results[180.0])/center_results[0.0] * 100
dev_270 = (center_results[0.0] - center_results[270.0])/center_results[0.0] * 100
#create results dict
results_dev = {
“90”: dev_90,
“180”: dev_180,
“270”: dev_270
}
print(results_dev)
“”"
regards
Thomas