train-pca.py 1.76 KB
import sys, string, os, subprocess

os.system("cls")

infile = sys.argv[1]

A = "class/coll.bmp "
B = "class/epith.bmp "
C = "class/fibro.bmp "
D = "class/lymph.bmp "
E = "class/myo.bmp "
F = "class/necrosis.bmp "
G = "class/blood.bmp "

Ca = "magenta "
Cb = "lime "
Cc = "pink "
Cd = "purple "
Ce = "yellow "
Cf = "orange "
Cg = "maroon "

#Baseline correction using a set of wavenumber points specified in baseline.txt
subprocess.call("hsiproc " + infile + " " + infile + "-base --baseline baseline.txt")

#Create a mask to be used later for PCA
subprocess.call("hsiproc " + infile + "-base mask.bmp --build-mask 1650 0.1")

#Convert to a BIP file. This is generally the fastest file to use, algorithmically.
subprocess.call("hsiproc " + infile + "-base " + infile + "-bip --convert bip")

#sift
subprocess.call("hsiproc " + infile + "-bip " + infile + "-sift --sift mask.bmp")

#Normalize to Amide I
subprocess.call("hsiproc " + infile + "-sift " + infile + "-norm --normalize 1650")

#Calculate the principle components
subprocess.call("hsiproc " + infile + "-norm " + infile + ".sta --pca")

#project onto the PCs
subprocess.call("hsiproc " + infile + "-norm " + infile + "-pca --project pca.sta 30")

#unsift
subprocess.call("hsiproc " + infile + "-pca " + infile + "-unsift --unsift mask.bmp")

#convert back to BSQ
subprocess.call("hsiproc " + infile + "-unsift " + infile + "-final --convert bsq")

#Baseline correction using a set of wavenumber points specified in baseline.txt
subprocess.call("hsiclass " + infile + "-final " + infile + ".rf --train " + A + B + C + D + E + F + G)

#classify the entire image
subprocess.call("hsiclass " + infile + "-final " + infile + "-class.bmp " + "--classify classifier.rf --colors " + Ca + Cb + Cc + Cd + Ce + Cf + Cg + "--mask mask.bmp --verbose")