Exemplo n.º 1
0
def Distance(famgs, fanms, fbmgs, fbnms, eigenmg, name):
    vecfa = np.array(MapFaces(eigenmg, famgs))
    vecfb = np.array(MapFaces(eigenmg, fbmgs))
    #Writing files to plot array
    plotarray = np.array([vecfa[:, 0:3], vecfb[:, 0:3]])

    gnu.Save(name + '_fa.txt', plotarray[0])
    gnu.Save(name + '_fb.txt', plotarray[1])

    ss = 'set terminal png\n'
    ss += 'set output "' + name + 'fa_fb.png"\n'
    ss += 'set multiplot\n'
    ss += 'set size 1,0.5\n'
    ss += 'set origin 0,0.0\n'
    ss += 'set view 0,0,1,2\n'
    ss += 'splot "' + name + '_fa.txt", "' + name + '_fb.txt"\n'
    ss += 'unset multiplot\n'
    ss += 'unset size\n'
    ss += 'unset origin\n'

    fp1 = open('plot' + name + '_fa_fb.txt', 'w')
    fp1.write(ss)
    fp1.flush()
    result = []
    for fb in vecfb:
        distance = []
        for fa in vecfa:
            dist = np.sqrt(((fb - fa)**2).sum())
            distance.append(dist)
        idx = np.array(distance).argsort()
        result.append(list(idx))
    return result
Exemplo n.º 2
0
def TestLaws(mgnames, NJ=100):

    # create laws filters
    filts = texture.BuildLawsFilters()
    # allocate for jets
    NI = len(mgnames)  # number of images
    jets = np.zeros((NJ * NI, 25))
    # for each image
    for i in xrange(NI):
        # load
        # correlate
        #corrs = BruteCorrelate( data, filts )
        data = mgnames[i] + 0
        corrs = map(lambda x: correlate2d(data, x), filts)
        for j in range(25):
            corrs[i] = cspline2d(abs(corrs[i]), 200)
        corrs = np.array(corrs)
        # extract random jets
        V, H = data.shape
        vs = range(V)
        hs = range(H)
        np.random.shuffle(vs)
        np.random.shuffle(hs)
        for j in range(NJ):
            jets[i * NJ + j] = corrs[:, vs[j], hs[j]]
    # k-means clustering
    clust, mmb = kmeans.KMeans(NI, jets)
    #return jets
    cffs, evecs = pca.PCA(clust, 3)
    cffs = pca.Map2PCA(clust, evecs)
    gnu.Save('Laws_results.txt', cffs)
    return clust, cffs
Exemplo n.º 3
0
def Train(brodatz_f, brodatz_256_mgs):

    #A container function that can be imported or run with user created arrays and filenames.
    #Coded Just for convenience incase of code testing!!

    qvecs = map(lambda x: basis.GaborCorr(x), brodatz_256_mgs)
    qvecs = np.array(qvecs)
    cffs, evecs = pca.PCA(qvecs, 3)
    cffs = pca.Map2PCA(qvecs, evecs)
    vecs_num = 0
    for name in brodatz_f:
        plot_vecs = cffs[vecs_num:vecs_num + 4]
        vecs_num = vecs_num + 4
        gnu.Save('graph_output\\' + name[0:-4] + '.txt', plot_vecs)

    for i in brodatz_f:
        print i + '\n'

    ss = 'unset key\n'
    ss += 'splot for [i=1:112] \'graph_output\\D\'.i.\'.txt\'\n'

    fp1 = open('plot_brodatz_256_textures.txt', 'w')
    fp1.write(ss)
    fp1.flush()
    return brodatz_f, cffs
Exemplo n.º 4
0
eigenmg1 = eigenmg1[0:5]
eigenmg2 = eigenmg2[0:5]

for i in range(5):
    smisc.imsave('output/' + groups[0][5:] + '_' + str(i) + '.png',
                 eigenmg1[i])
    smisc.imsave('output/eface_group2' + groups[1][5:] + '_' + str(i) + '.png',
                 eigenmg2[i])

vecs1 = np.array(MapFaces(eigenmg1, mgs_grp1))
vecs2 = np.array(MapFaces(eigenmg2, mgs_grp2))

plotarray = np.array([vecs1[:, 0:3], vecs2[:, 0:3]])

#Writing files to plot array
gnu.Save('AsianFemale.txt', plotarray[0])
gnu.Save('WhiteMale.txt', plotarray[1])

ss = 'set terminal png\n'
ss += 'set output "diff_in_groups.png"\n'
ss += 'set multiplot\n'
ss += 'set size 1,0.5\n'
ss += 'set origin 0,0.0\n'
ss += 'set view 0,0,1,2\n'
ss += 'splot "AsianFemale.txt","WhiteMale.txt"\n"'
ss += 'unset multiplot\n'
ss += 'unset size\n'
ss += 'unset origin\n'

fp1 = open('plotaf.txt', 'w')
fp1.write(ss)
Exemplo n.º 5
0
fnames = ReadFiles('data')
mgs = map(lambda x: basis.LoadGray(x), fnames)

nmgs = []
for i in range(len(mgs)):
    nm = ip.Plop(mgs[i], 512, 512)
    nmgs.append(nm)

fids = map(lambda x: basis.MakeGrid(x), nmgs)
fids = np.array(fids)
morph = warp.Morph(nmgs[1], fids[1], nmgs[2], fids[2], NI=10)
Imageset = []
Imageset.append(nmgs[1])

for i in morph:
    Imageset.append(i)
Imageset.append(nmgs[2])

for i in range(len(Imageset)):
    nm = 'output\\morph_' + str(i) + '.png'
    smisc.imsave(nm, Imageset[i])

clust, cffs = TestLaws(Imageset)

qvecs, a = TestHaar(Imageset)
qvecs = qvecs.sum(3).sum(2)
cffs, evecs = pca.PCA(qvecs, 3)

cffs = pca.Map2PCA(qvecs, evecs)
gnu.Save('Haar_results.txt', cffs)
Exemplo n.º 6
0
    ss = 'unset key\n'
    ss += 'splot for [i=1:112] \'graph_output\\D\'.i.\'.txt\'\n'

    fp1 = open('plot_brodatz_256_textures.txt', 'w')
    fp1.write(ss)
    fp1.flush()
    return brodatz_f, cffs


brodatz_f, brodatz_256_mgs = ReadBrodatz('brodatz')

qvecs = map(lambda x: basis.GaborCorr(x), brodatz_256_mgs)
qvecs = np.array(qvecs)
cffs, evecs = pca.PCA(qvecs, 3)
cffs = pca.Map2PCA(qvecs, evecs)
vecs_num = 0
for name in brodatz_f:
    plot_vecs = cffs[vecs_num:vecs_num + 4]
    vecs_num = vecs_num + 4
    gnu.Save('graph_output\\' + name[0:-4] + '.txt', plot_vecs)

for i in brodatz_f:
    print i + '\n'

ss = 'unset key\n'
ss += 'splot for [i=1:112] \'graph_output\\D\'.i.\'.plt\'\n'

fp1 = open('plot_brodatz_256_textures.txt', 'w')
fp1.write(ss)
fp1.flush()