diff --git a/analysis.py b/analysis.py index 0349e53..deb3a03 100644 --- a/analysis.py +++ b/analysis.py @@ -20,7 +20,10 @@ "5A": "ELECOM Matte Photo (open)", "5B": "ELECOM Matte Photo (close)", } -data_dir = r"D:\usr\prog\CM700Reader" +data_dir = ( + r"\\gabor\Project\内科\舌診\TIAS\開発\カラーチャート\TCC2025-01\退色調査3 マットフォト" + "\\" +) +colors = ["tab:blue", "tab:orange", "tab:green", "tab:red", "tab:purple"] def make_all_data_csv() -> None: @@ -35,6 +38,7 @@ file_path = os.path.join(data_dir, file) parts = os.path.splitext(os.path.basename(file))[0].split("_") paper = parts[0][5:7] + # paper = "4B" # 紙種類固定 datestr = parts[1] + "-" + parts[2] # iter = 0 if file[11:12] == "a" else 1 iter = 0 @@ -173,16 +177,17 @@ for i in range(1, 25): ax = fig.add_subplot(4, 6, i) ax.set_title(f"TCC {i}") - ax.set_xlabel("Minutes") + ax.set_xlabel("Days") ax.set_ylabel("Change in deltaE") - for paper in paper_list: + for pidx, paper in enumerate(paper_list): paper_data = df[df["paper"] == paper] if not paper_data.empty: ax.plot( - paper_data[paper_data["tcc"] == i]["days"], + paper_data[paper_data["tcc"] == i]["days"] / (24 * 60), paper_data[paper_data["tcc"] == i]["changeDE"], - marker="o", + marker="o" if (pidx % 2) == 0 else "^", markersize=4, + color=colors[pidx // 2], label=f"Paper {paper}", ) # ax.set_ylim(0, 3) # Set y-axis limit for better visibility @@ -193,18 +198,19 @@ fig2 = plt.figure() fig2.set_size_inches(9, 6) fig2.suptitle("Color Degradation Over Time (mean TCC)", fontsize=16) - for paper in paper_list: + for pidx, paper in enumerate(paper_list): paper_data = paper_mean[paper_mean["paper"] == paper] if not paper_data.empty: plt.plot( - paper_data["days"], + paper_data["days"] / (24 * 60), paper_data["changeDE"], - marker="o", + marker="o" if (pidx % 2) == 0 else "^", markersize=6, + color=colors[pidx // 2], label=f"Paper {paper} {paper_names[paper]}", ) plt.legend(loc="upper left", borderaxespad=0) - plt.xlabel("Minutes since first measurement") + plt.xlabel("Days since first measurement") plt.ylabel("Change in deltaE") fig2.savefig("out_degradation_meanTCC.png", dpi=300, bbox_inches="tight") @@ -212,17 +218,17 @@ if __name__ == "__main__": - parser = argparse.ArgumentParser(description="Analyze and visualize color degradation.") - parser.add_argument( - "csvfile", - help="Measured CSV file paths", - ) - args = parser.parse_args() - if not args.csvfile.endswith(".csv"): - print("Please provide the path to the CSV file.") - exit(1) - print("datadir:", os.path.dirname(args.csvfile)) - data_dir = os.path.dirname(args.csvfile) + # parser = argparse.ArgumentParser(description="Analyze and visualize color degradation.") + # parser.add_argument( + # "csvfile", + # help="Measured CSV file paths", + # ) + # args = parser.parse_args() + # if not args.csvfile.endswith(".csv"): + # print("Please provide the path to the CSV file.") + # exit(1) + # print("datadir:", os.path.dirname(args.csvfile)) + # data_dir = os.path.dirname(args.csvfile) print("Starting analysis...") visualize() diff --git a/print_check.py b/print_check.py new file mode 100644 index 0000000..1d78496 --- /dev/null +++ b/print_check.py @@ -0,0 +1,60 @@ +import os +import re + +import pandas as pd + +measure_dir = ( + r"\\gabor\Project\内科\舌診\TIAS\開発\カラーチャート\TCC2025-01\退色調査3 マットフォト" + "\\" +) +target_lab_csv = ( + r"\\gabor\Project\内科\舌診\TIAS\開発\カラーチャート\TCC2025-01\色調整\Target_Lab.csv" +) +tcc_lab = [] + + +def read_data(): + """Read data files and check for required columns.""" + + global tcc_lab + kinds = ["tcc1", "tcc2", "tcc3", "tcc4", "tcc5", "tcc6"] + for i in range(24): + tcc_lab.append([]) + + target_lab = pd.read_csv(target_lab_csv, encoding="utf-8", header=None) + + files = [] + for kind in kinds: + csv_files = [ + f for f in os.listdir(measure_dir) if f.endswith(".csv") and f.startswith(kind) + ] + csv_files.sort(reverse=True) + files.append(csv_files[0]) # Get the latest file for each kind + + for file in files: + file_path = os.path.join(measure_dir, file) + print(f"Reading {file}") + df = pd.read_csv(file_path, encoding="utf-8") + required_columns = {"no", "L*", "a*", "b*"} + if not required_columns.issubset(df.columns): + print(f"Error: Missing required columns in {file_path}") + exit(1) + for index, row in df.iterrows(): + no = int(row["no"]) + L = float(row["L*"]) + a = float(row["a*"]) + b = float(row["b*"]) + tcc_lab[no - 1].append((L, a, b)) + + for index, row in target_lab.iterrows(): + print(f"CC{index + 1:02d} Target Lab: L={row[0]}, a={row[1]}, b={row[2]}") + for i in range(len(tcc_lab[index])): + L, a, b = tcc_lab[index][i] + print( + f" Measured in {kinds[i]}: L={L}, a={a}, b={b} " + f"(ΔE*={((L - row[0]) ** 2 + (a - row[1]) ** 2 + (b - row[2]) ** 2) ** 0.5:.2f})" + ) + # print(tcc_lab) + + +if __name__ == "__main__": + read_data()