A function to extract hog features from both normal chest-xray images
and also check for correlation between Pneumonia and Normal chest-xray images
import random
hog_fv = []
def p_corr_p(): pim_files = os.listdir(pneumonia_folder)
# Get a list of all files in the normal_folder
normal_files = os.listdir(normal_folder)
for pim in tqdm(pim_files):
dst_path = os.path.join(pneumonia_folder, pim)
img_p = imread(dst_path)
hog_fv_p = hog_des(img_p)
hog_fv.append(hog_fv_p)
# Choose a random normal image
nim = random.choice(normal_files)
src_path = os.path.join(normal_folder, nim)
img_n = imread(src_path)
hog_fv_n = hog_des(img_n)
corr, pval = scipy.stats.pearsonr(hog_fv_n, hog_fv_p)
print(f'correlation coefficient and probability value of {nim} & {pim} = ({corr} , {pval})')
# Creating categories of PNEUMONIA for classification
for i in range(len(labels)):
if labels[i] == 'PNEUMONIA' and corr >= 0.5:
labels[i] = 'MILD'
break
elif labels[i] == 'PNEUMONIA' and corr >= 0.35 and corr < 0.5:
labels[i] = 'MODERATE'
break
elif labels[i] == 'PNEUMONIA' and corr < 0.35:
labels[i] = 'SEVERE'
break
return(hog_fv)
p_corr_p()
'MILD', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'SEVERE', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'SEVERE', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'SEVERE', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'SEVERE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'SEVERE', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'MILD', 'MILD', 'MILD', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MODERATE', 'MILD', 'MODERATE', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL', 'NORMAL'
import os import shutil
Define the severity levels
severity_levels = ['MILD', 'MODERATE', 'SEVERE', 'NORMAL'] SeverityFolder = r"/content/drive/MyDrive/subproject/modelTesting1/SeverityFolder"
Create directories for each severity level
for severity_level in severity_levels: os.makedirs(os.path.join(SeverityFolder, severity_level), exist_ok=True)
Move images to their respective severity level directories
for label, instance, computed_severity in zip(labels, instances, hog_fv): # Clean and standardize the label label = label.strip().upper() # Remove leading/trailing spaces and convert to uppercase
# Check if the label is PNEUMONIA
if label == 'PNEUMONIA':
# Determine severity based on computed severity levels
if computed_severity >= 0.5:
severity = 'MILD'
elif 0.35 <= computed_severity < 0.5:
severity = 'MODERATE'
else:
severity = 'SEVERE'
image_path = os.path.join(image_folder, label, instance)
destination_folder = os.path.join(SeverityFolder, severity, instance)
try:
# Move the image to the destination folder
shutil.move(image_path, destination_folder)
print(f"Moved {instance} to {destination_folder}")
except FileNotFoundError as e:
print(f"File not found: {e.filename}")
except Exception as e:
print(f"Error moving file: {e}")
I am expecting each severity class to be in a separate file under SeverityFolder, but is is not working, though the folders are created but nothing in the folder.