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.

0

There are 0 best solutions below