# generate_csv.py (Versi Paling Final dan Tangguh) import os import pandas as pd import struct # --- KONFIGURASI --- # Pastikan path ini benar, dijalankan dari folder utama proyek SOURCE_DATA_DIR = os.path.join( 'data', 'Nuclear Cataract Database for Biomedical and Machine Learning Applications', 'Nuclear Cataract Dataset' ) OUTPUT_CSV_PATH = 'labels.csv' # --- SCRIPT UTAMA --- all_image_data = [] print(f"Memindai folder '{SOURCE_DATA_DIR}'...") for patient_id in sorted(os.listdir(SOURCE_DATA_DIR)): patient_path = os.path.join(SOURCE_DATA_DIR, patient_id) if not os.path.isdir(patient_path): continue for eye_folder in os.listdir(patient_path): eye_path = os.path.join(patient_path, eye_folder) if not os.path.isdir(eye_path): continue datafile_path = os.path.join(eye_path, 'DATAFILE') # Lompati folder ini jika tidak ada DATAFILE if not os.path.exists(datafile_path): print(f"Peringatan: Tidak ada DATAFILE di folder {eye_path}") continue try: with open(datafile_path, 'rb') as f: content = f.read() # Cari semua angka desimal (double) di seluruh file biner # Ini cara paling tangguh untuk menemukan kandidat grade possible_grades = [g[0] for g in struct.iter_unpack('