In [1]:
import random
import matplotlib.pyplot as plt
import pylab
import numpy as np
from skimage.transform import rotate
from scipy.spatial.distance import pdist
from scipy.spatial.distance import squareform
from scipy.misc import imsave
import os
import pickle
import shutil
from joblib import Parallel, delayed
import subprocess


%matplotlib inline

#Rotation: RS140_x5_0000_gabor-blueNisslWide-segm-blueNisslRegular_spMaxDirAngle.npys
#RAW:   "/oasis/projects/nsf/csd181/yuncong/DavidData2014tif/RS140/x5/0000/RS140_x5_0000.tif"
#PATH: "/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS140/0000/"
#Example: "/oasis/projects/nsf/csd181/yuncong/DavidData2014v4/RS141/x5/0001/pipelineResults/RS141_x5_0001_segm-blueNissl_segmentation.npy"

In [2]:
#Location = "/Users/idanizhaki/Desktop/"
Location = "/oasis/projects/nsf/csd181/"

SAMPLES = 29
IMG_PATHS = []
DATA_PATHS = []
PROC_PATHS = []
CODE_NAMES = []
PREV_PATH = []

for i in range(0, np.min((10, SAMPLES + 1))):
    val = "000" + str(i)
    IMG_PATHS.append(Location + "yuncong/DavidData2014tif/RS141/x5/" + val + "/RS141_x5_" + val + ".tif")
    DATA_PATHS.append(Location + "yuncong/DavidData2014results/RS141/" + val + "/")
    PROC_PATHS.append("RS141/x5/" + val)
    CODE_NAMES.append("blueNisslRegular")
    PREV_PATH.append(Location + "yuncong/DavidData2014results/RS141/" + val + "/RS141_x5_" + val +
                                         "_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair");
    
for i in range(10, SAMPLES + 1):
    val = "00" + str(i)
    IMG_PATHS.append(Location + "yuncong/DavidData2014tif/RS141/x5/" + val + "/RS141_x5_" + val + ".tif")
    DATA_PATHS.append(Location + "yuncong/DavidData2014results/RS141/" + val + "/")
    PROC_PATHS.append("RS141/x5/" + val)
    CODE_NAMES.append("blueNisslRegular")
    PREV_PATH.append(Location + "yuncong/DavidData2014results/RS141/" + val + "/RS141_x5_" + val +
                                         "_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair");
    
TARGET = "/home/iizhaki/oasis/WebStem/photos/"

In [3]:
mapped = [0] * SAMPLES
props = [0] * SAMPLES
hists = [0] * SAMPLES
#dists = [0] * SAMPLES
#neighbors = [0] * SAMPLES
refs = {}

def worker(smpl):
    print str(smpl) + " of  " + str(SAMPLES)
    FNAMES = PROC_PATHS[smpl].replace("/", "_")
    FPATH = DATA_PATHS[smpl] 
    IMG_PATH = IMG_PATHS[smpl]
    PROC_PATH = PROC_PATHS[smpl]
    CODE_NAME = CODE_NAMES[smpl]
    
    # Load segments data
    SEGMENTS  = FPATH + FNAMES + "_segm-" + CODE_NAME + "_segmentation.npy" 
    ROTATIONS = FPATH + FNAMES + "_gabor-blueNisslWide-segm-" + CODE_NAME + "_spMaxDirAngle.npy" 
    #NEIBRS         = FPATH + FNAMES + "_segm-" + CODE_NAME + "_neighbors.npy"
    TEXT_DIST   = FPATH + FNAMES + "_gabor-blueNisslWide-segm-" + CODE_NAME + "-vq-blueNissl_texHistPairwiseDist.npy" 
    TEXT_MAP   = FPATH + FNAMES + "_gabor-blueNisslWide-vq-blueNissl_texMap.npy"
    PROPS          = FPATH + FNAMES + "_segm-" + CODE_NAME + "_spProps.npy"
    data = np.load(SEGMENTS)
    N = data.max() + 1
    #rotData = np.zeros(N)
    rotData = np.load(ROTATIONS)
    #nbrs = np.load(NEIBRS)
    #texton_dist = np.load(TEXT_DIST)
    texton_map = np.load(TEXT_MAP)
    sp_props = np.load(PROPS)
    props[smpl] = sp_props
    #dists[smpl] = texton_dist
    #neighbors[smpl] = nbrs
    
    # Input image
    img = plt.imread(IMG_PATH)
    plt.imshow(img)
    refName = "src_" + str(smpl) + "_" + str(img.shape[0]) + "_" + str(img.shape[1]) +  "_0.jpg"
    refs[smpl] = refName
    imsave(TARGET + refName, img)
    Txtns = np.max(texton_map) + 1
    mapped[smpl] = {}
    hists[smpl] = {}
    orgY, orgX, _ = img.shape
    
    # Generate photos of super-pixels rotated
    for v in range(0, N):
        degree = np.degrees(rotData[v])
        minY, minX, maxY, maxX = sp_props[v, 4:]
        H = maxX - minX
        W = maxY - minY
        buffX = H / 2
        buffY = W / 2
        botY = np.max((minY - buffY, 0))
        botX = np.max((minX - buffX, 0))
        topY = np.min((maxY + buffY, orgY))
        topX = np.min((maxX + buffX, orgX))
        patch = img[botY : topY, botX : topX]
        patch = rotate(patch, degree, True)
        
        nCY, nCX, _ = patch.shape
        patch = patch[(nCY - W) / 2 : (nCY + W) / 2, (nCX - H) / 2 : (nCX + H) / 2]
        
        radius = int(np.round(np.min((nCY, nCX)) / 2))
        pointX = int(np.round(maxX - H / 2))
        pointY = int(np.round(maxY - W / 2))
        
        textons = [0] * Txtns
        for x in range(int(minX), int(maxX)):
            for y in range(int(minY), int(maxY)):
                val = texton_map[y, x]
                if val >= 0:
                    textons[val] += 1

        hists[smpl][v] = textons
                    
        suffixName = "ref_" + str(smpl) + "_" + str(v) + "_" + str(pointX) + "_" + str(pointY) + "_" + str(radius)
        imgName = TARGET + suffixName
        mapped[smpl][v] = suffixName
        plt.imsave(imgName + ".png", patch)
        plt.clf();
        plt.cla();
        
        plt.hist(range(Txtns), bins=Txtns, weights=textons, normed = True, label=None)
        plt.axes().get_xaxis().set_visible(False)
        plt.axes().get_yaxis().set_visible(False)
        plt.savefig(imgName + '_hist.png')
        plt.clf();
        plt.cla();
    
    return mapped, hists, hists, refs

In [ ]:


In [ ]:
pcklPath = "/home/iizhaki/oasis/WebStem/pickles/"
restoreFromFile = False
if restoreFromFile:
    mapped = pickle.load(open(pcklPath + "mapped.pck", "rb"))
    props = pickle.load(open(pcklPath + "props.pck", "rb"))
    hists = pickle.load(open(pcklPath + "hists.pck", "rb"))
    refs = pickle.load(open(pcklPath + "refs.pck", "rb"))
        
else:
    res = Parallel(n_jobs=SAMPLES)(delayed(worker)(i) for i in range(SAMPLES))
    mapped2, props2, hists2, refs2 = map(np.array, zip(*res))

    mapped = [0] * SAMPLES
    props = [0] * SAMPLES
    hists = [0] * SAMPLES
    refs = {}

    for i in range(0, SAMPLES):
        mapped[i] = mapped2[i][i]
        props[i] = props2[i][i]
        hists[i] = hists2[i][i]
        refs.update(refs2[i])

    pcklPath = "/home/iizhaki/oasis/WebStem/pickles/"
    pickle.dump(mapped, open(pcklPath + "mapped.pck", "wb"))
    pickle.dump(props, open(pcklPath + "props.pck", "wb"))
    pickle.dump(hists, open(pcklPath + "hists.pck", "wb"))
    pickle.dump(refs, open(pcklPath + "refs.pck", "wb"))    

    
    for r in refs:
        subprocess.call(["convert", TARGET + refs[r], "-resize", "50%", TARGET + refs[r]]);

In [ ]:

Create Cover


In [8]:
import sys
sys.path.append('/home/yuncong/Brain/pipeline_scripts')
from utilities2014 import *

In [9]:
os.environ['GORDON_DATA_DIR'] = '/home/yuncong/project/DavidData2014tif/'
os.environ['GORDON_REPO_DIR'] = '/home/yuncong/Brain'
os.environ['GORDON_RESULT_DIR'] = '/home/yuncong/project/DavidData2014results/'
os.environ['GORDON_LABELING_DIR'] = '/home/yuncong/project/DavidData2014labelings/'

In [ ]:


In [31]:
index = 0
Tscore = 0.75

for sec1 in range(SAMPLES - 2):
    if sec1 >= 7 and sec1 <= 8:
        continue

    for sec2 in range(sec1 + 1, sec1 + 2):
        #if sec2 >= 7 and sec2 <= 8:
        #  continue
            
        dm_prev = DataManager(generate_hierarchy=False, stack='RS141', resol='x5', section=sec1)
        supporters_prev = dm_prev.load_pipeline_result('supporters', 'pkl')

        dm_next = DataManager(generate_hierarchy=False, stack='RS141', resol='x5', section=sec2)
        supporters_next = dm_next.load_pipeline_result('supporters', 'pkl')

        matchings_prev_with_next = dm_prev.load_pipeline_result('matchings%dWith%d'%(sec1, sec2), 'pkl')

        for ind in range(len(matchings_prev_with_next)):
            score, i, j = matchings_prev_with_next[ind]
            if score < Tscore:
                continue        

            print "Index:", ind, "with score:", score

            # Find 2 references as the most different ones
            sPrev = list(supporters_prev[i])
            sNext = list(supporters_next[j])
            random.shuffle(sPrev)
            random.shuffle(sNext)

            if not sPrev or not sNext:
                continue

            #print "======================"
            while sPrev and sNext:
                highScore = 0
                bestX= bestY = 0
                for x in range(len(sPrev)):
                    cX = sPrev[x]
                    for y in range(len(sNext)):
                        cY = sNext[y]
                        cScore = np.linalg.norm(np.array(hists[sec1][cX] - np.array(hists[sec2][cY])))
                        if cScore > highScore:
                            highScore = cScore
                            bestX = x
                            bestY = y

                ref1 = sPrev[bestX]
                ref2 = sNext[bestY]

                lenX = len(sPrev) - 1
                lenY= len(sNext) - 1
                if lenX + lenY < 32:
                    break
                if (lenX < 7 or lenY < 7):
                    break

                sPrev.pop(bestX)
                sNext.pop(bestY)

                if (lenX < 16):
                    nbrsX = sPrev[: lenX]
                    nbrsY = sNext[: 32 - lenX]
                    for k in range(lenX):
                        sPrev.pop(0)
                    for k in range(32 - lenX):
                        sNext.pop(0)

                elif (lenY < 16):
                    nbrsY = sNext[: lenY]
                    nbrsX = sPrev[: 32 - lenY]                
                    for k in range(32 - lenY):
                        sPrev.pop(0)
                    for k in range(lenY):
                        sNext.pop(0)

                else:
                    nbrsX = sPrev[: 16]
                    nbrsY = sNext[: 16]
                    for k in range(16):
                        sPrev.pop(0)
                    for k in range(16):
                        sNext.pop(0)

                folderName = TARGET + "group_" + str(index) + "/"
                shutil.rmtree(folderName, True)
                os.mkdir(folderName)

                mFile = mapped[sec1][ref1]
                os.symlink("../" + mFile + ".png", folderName + "img_" + mFile + ".png")
                os.symlink("../" + mFile + "_hist.png", folderName + "hist_" + mFile  + ".png")

                mFile = mapped[sec2][ref2]
                os.symlink("../" + mFile + ".png", folderName + "img_" + mFile + ".png")
                os.symlink("../" + mFile + "_hist.png", folderName + "hist_" + mFile  + ".png")

                for n in nbrsX:
                    mFile = mapped[sec1][n]
                    os.symlink("../" + mFile + ".png", folderName + mFile + ".png")

                for n in nbrsY:
                    mFile = mapped[sec2][n]
                    os.symlink("../" + mFile + ".png", folderName + mFile + ".png")

                os.symlink("../" + refs[sec1], folderName + "org_" + str(sec1));
                os.symlink("../" + refs[sec2], folderName + "org_" + str(sec2));

                prevPath = PREV_PATH[sec1] + str(ind) + "For" + str(sec1) + "With" + str(sec2) + ".jpg";
                print prevPath
                os.symlink(prevPath, folderName + "previewer");

                print index
                index += 1


loaded /home/yuncong/project/DavidData2014results/RS141/0000/RS141_x5_0000_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0001/RS141_x5_0001_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0000/RS141_x5_0000_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings0With1.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0001/RS141_x5_0001_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0002/RS141_x5_0002_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0001/RS141_x5_0001_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings1With2.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0002/RS141_x5_0002_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0003/RS141_x5_0003_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0002/RS141_x5_0002_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings2With3.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0003/RS141_x5_0003_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0003/RS141_x5_0003_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings3With4.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0005/RS141_x5_0005_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings4With5.pkl
Index: 8 with score: 0.766431214138
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
0
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
1
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
2
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
3
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
4
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
5
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair8For4With5.jpg
6
Index: 9 with score: 0.772660809539
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair9For4With5.jpg
7
Index: 10 with score: 0.775160340962
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For4With5.jpg
8
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For4With5.jpg
9
Index: 11 with score: 0.777053570614
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For4With5.jpg
10
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For4With5.jpg
11
Index: 12 with score: 0.797340071686
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For4With5.jpg
12
Index: 13 with score: 0.799815207091
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair13For4With5.jpg
13
Index: 14 with score: 0.804457032775
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair14For4With5.jpg
14
Index: 15 with score: 0.838918826737
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
15
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
16
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
17
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
18
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
19
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
20
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0004/RS141_x5_0004_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair15For4With5.jpg
21
loaded /home/yuncong/project/DavidData2014results/RS141/0005/RS141_x5_0005_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0006/RS141_x5_0006_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0005/RS141_x5_0005_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings5With6.pkl
Index: 11 with score: 0.764630245855
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0005/RS141_x5_0005_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For5With6.jpg
22
Index: 12 with score: 0.789634922924
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0005/RS141_x5_0005_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For5With6.jpg
23
loaded /home/yuncong/project/DavidData2014results/RS141/0006/RS141_x5_0006_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0007/RS141_x5_0007_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0006/RS141_x5_0006_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings6With7.pkl
Index: 17 with score: 0.751680584905
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0006/RS141_x5_0006_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair17For6With7.jpg
24
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0006/RS141_x5_0006_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair17For6With7.jpg
25
loaded /home/yuncong/project/DavidData2014results/RS141/0009/RS141_x5_0009_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0010/RS141_x5_0010_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0009/RS141_x5_0009_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings9With10.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0010/RS141_x5_0010_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0010/RS141_x5_0010_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings10With11.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings11With12.pkl
Index: 10 with score: 0.753660349634
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For11With12.jpg
26
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For11With12.jpg
27
Index: 11 with score: 0.757458801718
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For11With12.jpg
28
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For11With12.jpg
29
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For11With12.jpg
30
Index: 12 with score: 0.817496875244
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0011/RS141_x5_0011_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For11With12.jpg
31
loaded /home/yuncong/project/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0013/RS141_x5_0013_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings12With13.pkl
Index: 10 with score: 0.78948811198
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For12With13.jpg
32
Index: 11 with score: 0.796249300852
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
33
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
34
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
35
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
36
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
37
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0012/RS141_x5_0012_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For12With13.jpg
38
loaded /home/yuncong/project/DavidData2014results/RS141/0013/RS141_x5_0013_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0014/RS141_x5_0014_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0013/RS141_x5_0013_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings13With14.pkl
Index: 10 with score: 0.785833847542
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0013/RS141_x5_0013_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For13With14.jpg
39
Index: 11 with score: 0.794672547131
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0013/RS141_x5_0013_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For13With14.jpg
40
loaded /home/yuncong/project/DavidData2014results/RS141/0014/RS141_x5_0014_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0015/RS141_x5_0015_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0014/RS141_x5_0014_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings14With15.pkl
Index: 11 with score: 0.793779877904
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0014/RS141_x5_0014_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For14With15.jpg
41
loaded /home/yuncong/project/DavidData2014results/RS141/0015/RS141_x5_0015_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0015/RS141_x5_0015_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings15With16.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0017/RS141_x5_0017_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings16With17.pkl
Index: 11 with score: 0.752979942554
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair11For16With17.jpg
42
Index: 12 with score: 0.756771770882
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For16With17.jpg
43
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0016/RS141_x5_0016_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For16With17.jpg
44
loaded /home/yuncong/project/DavidData2014results/RS141/0017/RS141_x5_0017_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0018/RS141_x5_0018_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0017/RS141_x5_0017_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings17With18.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0018/RS141_x5_0018_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0018/RS141_x5_0018_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings18With19.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0020/RS141_x5_0020_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings19With20.pkl
Index: 13 with score: 0.753880919315
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair13For19With20.jpg
45
Index: 14 with score: 0.765865042878
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair14For19With20.jpg
46
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0019/RS141_x5_0019_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair14For19With20.jpg
47
loaded /home/yuncong/project/DavidData2014results/RS141/0020/RS141_x5_0020_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0021/RS141_x5_0021_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0020/RS141_x5_0020_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings20With21.pkl
Index: 12 with score: 0.750501457261
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0020/RS141_x5_0020_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For20With21.jpg
48
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0020/RS141_x5_0020_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For20With21.jpg
49
loaded /home/yuncong/project/DavidData2014results/RS141/0021/RS141_x5_0021_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0022/RS141_x5_0022_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0021/RS141_x5_0021_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings21With22.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0022/RS141_x5_0022_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0023/RS141_x5_0023_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0022/RS141_x5_0022_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings22With23.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0023/RS141_x5_0023_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0024/RS141_x5_0024_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0023/RS141_x5_0023_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings23With24.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0024/RS141_x5_0024_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0025/RS141_x5_0025_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0024/RS141_x5_0024_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings24With25.pkl
Index: 12 with score: 0.764574649655
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0024/RS141_x5_0024_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For24With25.jpg
50
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0024/RS141_x5_0024_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair12For24With25.jpg
51
loaded /home/yuncong/project/DavidData2014results/RS141/0025/RS141_x5_0025_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0025/RS141_x5_0025_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings25With26.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0027/RS141_x5_0027_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_supporters.pkl
loaded /home/yuncong/project/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchings26With27.pkl
Index: 9 with score: 0.787796009859
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair9For26With27.jpg
52
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair9For26With27.jpg
53
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair9For26With27.jpg
54
Index: 10 with score: 0.793992740496
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For26With27.jpg
55
/oasis/projects/nsf/csd181/yuncong/DavidData2014results/RS141/0026/RS141_x5_0026_gabor-blueNisslWide-segm-blueNisslRegular-vq-blueNissl_matchedBoundaryPair10For26With27.jpg
56

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [18]:
# save the map in case of a crash
#file = open("images/v2name.pck", "w")
#pickle.dump(mapped, file)
#file.close()
print "done"


done

In [19]:
# load the map in case of a crash
#file  = open ("images/v2name.pck")
#mapped = pickle.load(file)
#file.close();
print "done"


done

In [20]:
layers = []

'''# 0 -> 1 : 6
layers.append([0, [1324, 1325, 1326, 1327, 1328, 1264, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1430, 1431, 
                             1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1548, 1549, 1550, 1551, 1552, 1553],
                         1, [2030, 2032, 2033, 2034, 2035, 2120, 2121, 2122, 2123, 2124, 2215, 2216, 2217, 2218, 2182, 2302, 2304, 2305, 
                              2306, 2307, 2308, 2258, 2252, 2392, 2394, 2395, 2363, 2354,2478, 2479, 2480, 2501, 2560, 2561, 2562, 2667, 2626, 2645],
                         6]);

# 0 -> 1 : 7
layers.append([0, [3134, 3190, 3147, 3148, 3191, 3192, 3202, 3117, 3128, 3135, 3208, 3193, 3238, 3284, 3285, 3239, 3240,
                             3286, 3287, 3241, 3242, 3243, 3303, 3288, 3244, 3371, 3372, 3374, 3375, 3376, 3377, 3378, 3332, 3379, 
                             3391, 3380, 3381, 3482, 3435, 3465, 3466, 3467, 3468, 3436, 3437, 3574, 3545, 3546, 3547, 3548, 3549,
                             3646, 3628, 3629, 3630, 3631, 3711, 3676, 3670, 3679, 3712],
                        1, [2835, 2838, 2863, 2822, 2759, 2886, 2836, 2830, 2851, 2839, 2840, 2927, 2928, 2947, 2901, 2891, 2905, 2906, 2998, 2960],
                        7]);

# 0 -> 1 : 12
layers.append([0, [2130, 2139, 2131, 2079, 2021, 1968, 1907, 1921, 1928, 2132, 2133, 2080, 2055, 2249, 2250, 2242, 2243,
                              2244, 2181, 2251, 2366, 2367, 2296, 2351, 2355, 2297, 2356, 2472, 2467, 2468, 2410, 2411, 2469, 2524],
                        1, [2373, 2338, 2339, 2411, 2422, 2537, 2358, 2359, 2457],
                        12]);

# 0 -> 1 : 14
layers.append([0, [3057, 3115, 3210, 3140, 3211, 3214, 3302, 3226, 3306, 3313, 3316, 3385, 3402, 3405, 3415, 3426, 3439, 
                             3531, 3502, 3532, 3553, 3510, 3593, 3600, 3618, 3601, 3686, 3695, 3687, 3742],
                        1, [2552, 2553, 2554, 2555, 2638, 2639, 2640, 2641, 2706, 2720, 2721, 2722, 2778, 2795, 2796, 2797, 2798, 2837, 
                            2866, 2867, 2868, 2908, 2915, 2932, 2933, 2982, 2983, 2984, 2971, 3035, 3036, 3037, 3038, 3015, 3039, 3077, 
                            3085, 3086, 3087, 3088, 3078, 3079, 3117, 3127, 3128, 3129, 3130, 3131, 3132],
                        14]);

# 1 -> 2: 14
layers.append([1, [2093, 2115, 2116, 2210, 2171, 2211, 2212, 2297, 2298, 2299, 2327, 2385, 2386, 2387, 2412, 2475, 2471, 2472, 2470, 2533, 2534, 2535, 2642], 
                         2, [677, 631, 610, 676, 709, 737, 710, 782, 711, 691, 758, 712, 792, 826, 827, 848, 828, 781, 829, 830, 793, 908, 865, 875, 909, 876, 
                              910, 911, 912, 913, 993, 956, 994, 995, 996, 997, 998, 999, 1000, 1063, 1064, 1065, 1066, 1067, 1099, 1100, 1197, 1198, 1199, 
                              1144, 1164, 1303, 1265, 1304, 1266, 1253, 1414, 1415], 
                        14]);

# 2 -> 3: 10
layers.append([2, [3214, 3187, 3237, 3273, 3282, 3243, 3274, 3362, 3316, 3348, 3349, 3325, 3350, 3332, 3426, 3378, 3422, 3425, 3391, 3411, 3434, 3482, 3478, 3452, 3522], 
                         3, [342, 309, 359, 360, 376, 424, 377, 427, 448, 453, 446, 501, 442, 533, 521, 525, 534, 526, 605, 648, 617, 648, 699, 742, 706, 829, 830, 800, 934, 935], 
                         10]);

# 2 -> 3: 11
layers.append([2, [550, 575, 630, 677, 631, 610, 676, 709, 737, 710, 762, 711, 691, 758, 712, 792, 826, 827, 848, 828, 781, 829, 830, 907, 908,
                             865, 875, 909, 876, 910, 911, 912, 913, 956, 994, 995, 996, 997, 998, 999, 1000, 1001, 1063, 1064, 1065, 1066, 1067, 1099, 1100,
                             1198, 1199, 1144, 1164, 1200, 1201, 1304, 1266, 1253, 1305, 1306, 1414, 1415, 1344, 1372, 1515, 1466, 1516, 1625, 1626, 1627, 1732], 
                         3, [78, 74, 80, 134, 111, 116, 184, 166, 158, 155, 213, 235, 206, 220, 214, 201, 262, 265, 258, 249, 342, 309, 264, 305, 359, 360], 
                         11]);

# 2 -> 3: 12
layers.append([2, [3222, 3210, 3166, 3223, 3288, 3292, 3244, 3289, 3301, 3245, 3251,
                             3355, 3356, 3357, 3361, 3317, 3333, 3366, 3326, 3366, 3318, 3424,
                             3415, 3416, 3395, 3396, 3427, 3397, 3417, 3438, 3472, 3473, 3474,
                             3475, 3476, 3526, 3527, 3507, 3508],
                         3, [1799, 1746, 1836, 1914, 1965, 1948, 2006, 1937, 2124, 2114,
                             2070, 2071, 2047, 2125, 2227, 2158, 2215, 2171, 2228, 2148, 2172,
                            2235, 2315, 2271, 2316, 2317, 2259, 2337, 2260, 2318, 2331, 2320,
                            2377, 2353, 2378, 2379, 2362, 2438, 2462, 2453, 2480, 2481, 2482],
                         12]);
 
# 2 -> 3: 16
layers.append([2, [3070, 3063, 3079, 3064, 3168, 3169, 3159, 3227, 3233, 3240,
                              3261, 3304, 3311, 3313, 3335, 3371, 3375, 3382, 3420, 3454, 
                              3455, 3440, 3456, 3495, 3491, 3501, 3513, 3538, 3546, 3550,
                              3572, 3586, 3584, 3613, 3587, 3588, 3605, 3589, 3583, 3590, 3610,
                              3620, 3650, 3618, 3643, 3626, 3635, 3633, 3636, 3637, 3652,
                              3679, 3657, 3674, 3673, 3670, 3668, 3686, 3697, 3696, 3693,
                              3689, 3582, 3594, 3598, 3621, 3638, 3644, 3654, 3683, 3669, 
                              3503, 3545, 3516, 3504, 3517, 3552, 3559, 3561, 3562, 3563,
                              3598, 3599, 3606, 3609, 3607, 3581, 3615, 3644, 3625, 3639, 
                              3645, 3627, 3619, 3649, 3622, 3658, 3665, 3678, 3659, 3655,
                              3685, 3682, 3680, 3661, 3661, 3646, 3666, 3681, 3653, 3684,
                              3667, 3690, 3675, 3698, 3662, 3687, 3698, 3688, 3701, 3694,
                              3702, 3695, 3703, 3691, 3700, 3039, 3013, 3014, 3015, 3016,
                              3017, 3103, 3104, 3105, 3106, 3107, 3170, 3199, 3200, 3201,
                              3202, 3247, 3264, 3281, 3282, 3320, 3329, 3339, 3330, 3401,
                              3402, 3403, 3404, 3448, 3461, 3462, 3463],
                        3, [356, 313, 314, 317, 324, 354, 362, 383, 417, 418, 419, 420, 426,
                             371, 369, 492, 493, 494, 495, 496, 497, 505, 498, 443, 508, 436,
                             445, 438, 499, 575, 576, 577, 578, 579, 580, 581, 582, 528, 591,
                             516, 583, 522, 588, 662, 663, 664, 665, 666, 667, 668, 625, 675,
                             603, 669, 608, 676, 697, 513, 509, 437, 450, 435, 434, 368, 367, 
                             365, 366, 593, 589, 520, 584, 517, 511, 439, 432, 422, 429, 423,
                             678, 679, 626, 594, 525, 590, 537, 585, 586, 587, 764, 768, 760,
                             863, 854, 855, 856, 857, 954, 955, 906, 907, 956, 957, 958, 959,
                             960, 961, 962, 963, 979, 1051, 1052, 1053, 1054, 1055, 1056,
                             1057, 1058, 1059, 1004, 1061, 1103, 1168, 1082, 1152, 1153, 1154,
                             1155, 1156, 1157, 1158, 1167, 1159, 1190, 1256, 1257],
                        16]);
'''

#import pickle
#layers = pickle.load(open("layers.pck", "rb"))


Out[20]:
'# 0 -> 1 : 6\nlayers.append([0, [1324, 1325, 1326, 1327, 1328, 1264, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1430, 1431, \n                             1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1548, 1549, 1550, 1551, 1552, 1553],\n                         1, [2030, 2032, 2033, 2034, 2035, 2120, 2121, 2122, 2123, 2124, 2215, 2216, 2217, 2218, 2182, 2302, 2304, 2305, \n                              2306, 2307, 2308, 2258, 2252, 2392, 2394, 2395, 2363, 2354,2478, 2479, 2480, 2501, 2560, 2561, 2562, 2667, 2626, 2645],\n                         6]);\n\n# 0 -> 1 : 7\nlayers.append([0, [3134, 3190, 3147, 3148, 3191, 3192, 3202, 3117, 3128, 3135, 3208, 3193, 3238, 3284, 3285, 3239, 3240,\n                             3286, 3287, 3241, 3242, 3243, 3303, 3288, 3244, 3371, 3372, 3374, 3375, 3376, 3377, 3378, 3332, 3379, \n                             3391, 3380, 3381, 3482, 3435, 3465, 3466, 3467, 3468, 3436, 3437, 3574, 3545, 3546, 3547, 3548, 3549,\n                             3646, 3628, 3629, 3630, 3631, 3711, 3676, 3670, 3679, 3712],\n                        1, [2835, 2838, 2863, 2822, 2759, 2886, 2836, 2830, 2851, 2839, 2840, 2927, 2928, 2947, 2901, 2891, 2905, 2906, 2998, 2960],\n                        7]);\n\n# 0 -> 1 : 12\nlayers.append([0, [2130, 2139, 2131, 2079, 2021, 1968, 1907, 1921, 1928, 2132, 2133, 2080, 2055, 2249, 2250, 2242, 2243,\n                              2244, 2181, 2251, 2366, 2367, 2296, 2351, 2355, 2297, 2356, 2472, 2467, 2468, 2410, 2411, 2469, 2524],\n                        1, [2373, 2338, 2339, 2411, 2422, 2537, 2358, 2359, 2457],\n                        12]);\n\n# 0 -> 1 : 14\nlayers.append([0, [3057, 3115, 3210, 3140, 3211, 3214, 3302, 3226, 3306, 3313, 3316, 3385, 3402, 3405, 3415, 3426, 3439, \n                             3531, 3502, 3532, 3553, 3510, 3593, 3600, 3618, 3601, 3686, 3695, 3687, 3742],\n                        1, [2552, 2553, 2554, 2555, 2638, 2639, 2640, 2641, 2706, 2720, 2721, 2722, 2778, 2795, 2796, 2797, 2798, 2837, \n                            2866, 2867, 2868, 2908, 2915, 2932, 2933, 2982, 2983, 2984, 2971, 3035, 3036, 3037, 3038, 3015, 3039, 3077, \n                            3085, 3086, 3087, 3088, 3078, 3079, 3117, 3127, 3128, 3129, 3130, 3131, 3132],\n                        14]);\n\n# 1 -> 2: 14\nlayers.append([1, [2093, 2115, 2116, 2210, 2171, 2211, 2212, 2297, 2298, 2299, 2327, 2385, 2386, 2387, 2412, 2475, 2471, 2472, 2470, 2533, 2534, 2535, 2642], \n                         2, [677, 631, 610, 676, 709, 737, 710, 782, 711, 691, 758, 712, 792, 826, 827, 848, 828, 781, 829, 830, 793, 908, 865, 875, 909, 876, \n                              910, 911, 912, 913, 993, 956, 994, 995, 996, 997, 998, 999, 1000, 1063, 1064, 1065, 1066, 1067, 1099, 1100, 1197, 1198, 1199, \n                              1144, 1164, 1303, 1265, 1304, 1266, 1253, 1414, 1415], \n                        14]);\n\n# 2 -> 3: 10\nlayers.append([2, [3214, 3187, 3237, 3273, 3282, 3243, 3274, 3362, 3316, 3348, 3349, 3325, 3350, 3332, 3426, 3378, 3422, 3425, 3391, 3411, 3434, 3482, 3478, 3452, 3522], \n                         3, [342, 309, 359, 360, 376, 424, 377, 427, 448, 453, 446, 501, 442, 533, 521, 525, 534, 526, 605, 648, 617, 648, 699, 742, 706, 829, 830, 800, 934, 935], \n                         10]);\n\n# 2 -> 3: 11\nlayers.append([2, [550, 575, 630, 677, 631, 610, 676, 709, 737, 710, 762, 711, 691, 758, 712, 792, 826, 827, 848, 828, 781, 829, 830, 907, 908,\n                             865, 875, 909, 876, 910, 911, 912, 913, 956, 994, 995, 996, 997, 998, 999, 1000, 1001, 1063, 1064, 1065, 1066, 1067, 1099, 1100,\n                             1198, 1199, 1144, 1164, 1200, 1201, 1304, 1266, 1253, 1305, 1306, 1414, 1415, 1344, 1372, 1515, 1466, 1516, 1625, 1626, 1627, 1732], \n                         3, [78, 74, 80, 134, 111, 116, 184, 166, 158, 155, 213, 235, 206, 220, 214, 201, 262, 265, 258, 249, 342, 309, 264, 305, 359, 360], \n                         11]);\n\n# 2 -> 3: 12\nlayers.append([2, [3222, 3210, 3166, 3223, 3288, 3292, 3244, 3289, 3301, 3245, 3251,\n                             3355, 3356, 3357, 3361, 3317, 3333, 3366, 3326, 3366, 3318, 3424,\n                             3415, 3416, 3395, 3396, 3427, 3397, 3417, 3438, 3472, 3473, 3474,\n                             3475, 3476, 3526, 3527, 3507, 3508],\n                         3, [1799, 1746, 1836, 1914, 1965, 1948, 2006, 1937, 2124, 2114,\n                             2070, 2071, 2047, 2125, 2227, 2158, 2215, 2171, 2228, 2148, 2172,\n                            2235, 2315, 2271, 2316, 2317, 2259, 2337, 2260, 2318, 2331, 2320,\n                            2377, 2353, 2378, 2379, 2362, 2438, 2462, 2453, 2480, 2481, 2482],\n                         12]);\n \n# 2 -> 3: 16\nlayers.append([2, [3070, 3063, 3079, 3064, 3168, 3169, 3159, 3227, 3233, 3240,\n                              3261, 3304, 3311, 3313, 3335, 3371, 3375, 3382, 3420, 3454, \n                              3455, 3440, 3456, 3495, 3491, 3501, 3513, 3538, 3546, 3550,\n                              3572, 3586, 3584, 3613, 3587, 3588, 3605, 3589, 3583, 3590, 3610,\n                              3620, 3650, 3618, 3643, 3626, 3635, 3633, 3636, 3637, 3652,\n                              3679, 3657, 3674, 3673, 3670, 3668, 3686, 3697, 3696, 3693,\n                              3689, 3582, 3594, 3598, 3621, 3638, 3644, 3654, 3683, 3669, \n                              3503, 3545, 3516, 3504, 3517, 3552, 3559, 3561, 3562, 3563,\n                              3598, 3599, 3606, 3609, 3607, 3581, 3615, 3644, 3625, 3639, \n                              3645, 3627, 3619, 3649, 3622, 3658, 3665, 3678, 3659, 3655,\n                              3685, 3682, 3680, 3661, 3661, 3646, 3666, 3681, 3653, 3684,\n                              3667, 3690, 3675, 3698, 3662, 3687, 3698, 3688, 3701, 3694,\n                              3702, 3695, 3703, 3691, 3700, 3039, 3013, 3014, 3015, 3016,\n                              3017, 3103, 3104, 3105, 3106, 3107, 3170, 3199, 3200, 3201,\n                              3202, 3247, 3264, 3281, 3282, 3320, 3329, 3339, 3330, 3401,\n                              3402, 3403, 3404, 3448, 3461, 3462, 3463],\n                        3, [356, 313, 314, 317, 324, 354, 362, 383, 417, 418, 419, 420, 426,\n                             371, 369, 492, 493, 494, 495, 496, 497, 505, 498, 443, 508, 436,\n                             445, 438, 499, 575, 576, 577, 578, 579, 580, 581, 582, 528, 591,\n                             516, 583, 522, 588, 662, 663, 664, 665, 666, 667, 668, 625, 675,\n                             603, 669, 608, 676, 697, 513, 509, 437, 450, 435, 434, 368, 367, \n                             365, 366, 593, 589, 520, 584, 517, 511, 439, 432, 422, 429, 423,\n                             678, 679, 626, 594, 525, 590, 537, 585, 586, 587, 764, 768, 760,\n                             863, 854, 855, 856, 857, 954, 955, 906, 907, 956, 957, 958, 959,\n                             960, 961, 962, 963, 979, 1051, 1052, 1053, 1054, 1055, 1056,\n                             1057, 1058, 1059, 1004, 1061, 1103, 1168, 1082, 1152, 1153, 1154,\n                             1155, 1156, 1157, 1158, 1167, 1159, 1190, 1256, 1257],\n                        16]);\n'

In [11]:
for i in range(len(layers)):
    layers[i][1] = [n for n in layers[i][1] if n in mapped[layers[i][0]]]
    layers[i][3] = [n for n in layers[i][3] if n in mapped[layers[i][2]]]
    random.shuffle(layers[i][1])
    random.shuffle(layers[i][3])

#for i in range(SAMPLES):
 #   for k in mmapper[i]:
  #      mmapper[i][k] = [n for n in mmapper[i][k] if n in mapped[i]]
        #random.shuffle(mmapper[i][k])


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-11-804abadf430f> in <module>()
      1 for i in range(len(layers)):
----> 2     layers[i][1] = [n for n in layers[i][1] if n in mapped[layers[i][0]]]
      3     layers[i][3] = [n for n in layers[i][3] if n in mapped[layers[i][2]]]
      4     random.shuffle(layers[i][1])
      5     random.shuffle(layers[i][3])

NameError: name 'mapped' is not defined

In [12]:
#print mmapper[2]

In [5]:
'''layers = [];

for i in range(SAMPLES - 1):
    for j in range(i + 1, SAMPLES):
        for k in mmapper[i]:
            if mmapper[i][k] and k in mmapper[j] and mmapper[j][k]:
                layers += [(i, mmapper[i][k], j, mmapper[j][k])]
                
                
print layers'''


Out[5]:
'layers = [];\n\nfor i in range(SAMPLES - 1):\n    for j in range(i + 1, SAMPLES):\n        for k in mmapper[i]:\n            if mmapper[i][k] and k in mmapper[j] and mmapper[j][k]:\n                layers += [(i, mmapper[i][k], j, mmapper[j][k])]\n                \n                \nprint layers'

In [6]:
'''
lay0n14 = [n for n in lay0n14 if n in mapped[0]]
lay1n14 = [n for n in lay1n14 if n in mapped[1]]

lay0n6 = [n for n in lay0n6 if n in mapped[0]]
lay1n6 = [n for n in lay1n6 if n in mapped[1]]

print "Layer 14"
print lay0n14
print lay1n14

print "Layer 6"
print lay0n6
print lay1n6

layers = [(lay0n14, lay1n14), (lay0n6, lay1n6)]
'''

def overlaps(layer1, spxl1, layer2, spxl2):
    if layer1 == 0:
        return spxl1 in lay0n14 and spxl2 in lay1n14
    return spxl2 in lay0n14 and spxl1 in lay1n14

In [7]:
Td = 700  # Pixels distance
Th = 0.75  # Histogram distance

In [8]:
index = 1;
for idx in range(len(layers)):
    tuples = layers[idx];
    
    smpl1 = tuples[0];
    smpl2 = tuples[2];
    
    potential1 = tuples[1]
    toRemove1 = set()
    
    for i in range(len(potential1)):
        tuples = layers[idx];
        vI = potential1[i]
        
        centI = props[smpl1][vI][:2]
        #nbrsI = [x for x in potential1 if x != vI and numpy.linalg.norm(centI - props[smpl1][x][:2]) < Td and dists[smpl1][vI, x] < Th]
        nbrsI = [x for x in potential1 if x != vI and dists[smpl1][vI, x] < Th and np.linalg.norm(centI - props[smpl1][x][:2]) < Td]
        
        potential2 = tuples[3]
        toRemove2 = set()
        
        for j in range(len(potential2)):
            vJ = potential2[j]
            
            try:
                centJ = props[smpl2][vJ][:2]
            except:
                continue
            
            nbrsJ = [x for x in potential2 if x != vJ and dists[smpl2][vJ, x] < Th and np.linalg.norm(centI - props[smpl2][x][:2]) < Td]
        
            lenI = len(nbrsI)
            lenJ = len(nbrsJ)
            if lenI + lenJ < 32:
                continue            

            if (lenI < 7 or lenJ < 7):
                continue
            if (lenI < 16):
                nbrsJ = nbrsJ[: 16 + 16 - lenI]
            elif (lenJ < 16):
                nbrsI = nbrsI[: 16 + 16 - lenJ]
            else:
                nbrsI = nbrsI[: 16]
                nbrsJ = nbrsJ[: 16]
        
            
            folderName = TARGET + "group_" + str(index) + "/"
            shutil.rmtree(folderName, True)
            os.mkdir(folderName)

            toRemove1.add(vI)
            mFile = mapped[smpl1][vI]
            os.symlink("../" + mFile + ".png", folderName + "img_" + mFile + ".png")
            os.symlink("../" + mFile + "_hist.png", folderName + "hist_" + mFile  + ".png")

            toRemove2.add(vJ)
            mFile = mapped[smpl2][vJ]
            os.symlink("../" + mFile + ".png", folderName + "img_" + mFile + ".png")
            os.symlink("../" + mFile + "_hist.png", folderName + "hist_" + mFile  + ".png")
    
            for n in nbrsI:
                toRemove1.add(n)
                mFile = mapped[smpl1][n]
                os.symlink("../" + mFile + ".png", folderName + mFile + ".png")

            for n in nbrsJ:
                toRemove2.add(n)
                mFile = mapped[smpl2][n]
                os.symlink("../" + mFile + ".png", folderName + mFile + ".png")

            print refs[smpl1]
            asd
            os.symlink("../" + refs[smpl1], folderName + "org_" + str(smpl1));
            os.symlink("../" + refs[smpl2], folderName + "org_" + str(smpl2));

            #print index
            print index
            index += 1 
            i -= 1
            break
            
        if toRemove2:
            potential2 = [v for v in potential2 if not v in toRemove2]
            layers[idx] = (smpl1, potential1, smpl2, potential2)
            
    if toRemove1:
        potential1 = [v for v in potential1 if not v in toRemove1]
        layers[idx] = (smpl1, potential1, smpl2, potential2)

In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [194]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [ ]:


In [6]:
maxKey = max(mapped.keys())
potential = list(sort(mapped.keys()))

Pair14 = [3023, 3057, 3039, 3115, 3210, 3121, 3140, 3211, 3214, 3302, 3226, 3247, 3306, 3313, 3316, 3385, 3402, 3405, 3415, 3426, 3439, 3531, 3502, 3532, 3553, 3510, 3593, 3600, 3618, 3601, 3663, 3686, 3695, 3717, 3687, 3742]
Pair6 = [1230, 1275, 1323, 1324, 1325, 1326, 1327, 1328, 1264, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336,  1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556]

keys14 = [key for key in Pair14 if key in mapped ]
keys6 = [key for key in Pair6 if key in mapped ]
        
print keys14
print keys6

rkeys14 = []
rkeys6 = []

for i in range(0, len(potential)):
    if potential[i] in keys14:
        rkeys14.append(i)
    if potential[i] in keys6:
        rkeys6.append(i)
        
Pairs = []
for k14 in rkeys14:
    for k6 in rkeys6:
        Pairs.append((k6, k14))
    
'''
for p in Pairs:
    if p[0] in potential:
        potential.remove(p[0])
    if p[1] in potential:    
        potential.remove(p[1])
        
print potential
'''


[]
[1230, 1335, 1434, 1542]
Out[6]:
'\nfor p in Pairs:\n    if p[0] in potential:\n        potential.remove(p[0])\n    if p[1] in potential:    \n        potential.remove(p[1])\n        \nprint potential\n'

In [7]:
N = len(potential)
index = 1
T = 0.10
S = []
nS = set()

print Pairs

i = 0
for (i, j) in Pairs:
    vI = potential[i]
    centI = sp_props[vI][:2]
    chosen = [vI]
    
    vJ = potential[j]
    centJ = sp_props[vJ][:2]
    
    chosen += [vJ]        
        
    changed = False

    for k in range(1, len(potential)):
        if k == i or k == j:
            continue
        
        vK = potential[k]
        centK = sp_props[vK][:2]

        distIKd = np.sqrt(sum((centI - centK)**2))
        if distIKd < Td:
            distJKd = np.sqrt(sum((centJ - centK)**2))
            if distJKd < Td:
                continue

        distIKh = texton_dist[vI, vK]
        if distIKh > Th:
            distJKh = texton_dist[vJ, vK]
            if distJKh > Th:
                continue

        changed = True
        chosen += [vK]
        #if len(chosen) >= 34:
          #  break

    if not changed:
        continue

    i += 1
    if len(chosen) < 34:
        continue

    folderName = TARGET + "group_" + str(index) + "/"
    shutil.rmtree(folderName, True)
    os.mkdir(folderName)
    
    #print mapped
    for n in chosen:
        fle = mapped[n]
        #print folderName + fle
        potential.remove(n)
        os.symlink(fle, folderName + fle)
    
    #print chosen[0]
    #break
    index += 1    

'''
while potential:
    folderName = TARGET + "group_" + str(index) + "/"
    shutil.rmtree(folderName, True)

    candidate = potential.popitem()
    nS.add(candidate)
    
    iter = potential.iteritems()
    remove = set()
    
    
    while True:
        try:
            next = iter.next()
        except:
            break
        succ = True
        v1 = next[0]
        for k in nS:
            v2 = k[0]
          #  print v1, v2
            if texton_dist[v1, v2] > T:
                succ = False
                break
        
        if succ:
            remove.add(next[0])
            nS.add(next)
            
    for i in remove:
        del potential[i]
        
    if (len(nS) >= 8):
        os.mkdir(folderName)
        #os.mkdir(folderName + "images")
        for n in nS:
            print n[1], folderName + n[1]
            os.symlink(n[1], folderName + n[1])
        index = index + 1
        S.append(nS)
    nS = set()
    
for s in S:
    print s
    
'''


[]
Out[7]:
'\nwhile potential:\n    folderName = TARGET + "group_" + str(index) + "/"\n    shutil.rmtree(folderName, True)\n\n    candidate = potential.popitem()\n    nS.add(candidate)\n    \n    iter = potential.iteritems()\n    remove = set()\n    \n    \n    while True:\n        try:\n            next = iter.next()\n        except:\n            break\n        succ = True\n        v1 = next[0]\n        for k in nS:\n            v2 = k[0]\n          #  print v1, v2\n            if texton_dist[v1, v2] > T:\n                succ = False\n                break\n        \n        if succ:\n            remove.add(next[0])\n            nS.add(next)\n            \n    for i in remove:\n        del potential[i]\n        \n    if (len(nS) >= 8):\n        os.mkdir(folderName)\n        #os.mkdir(folderName + "images")\n        for n in nS:\n            print n[1], folderName + n[1]\n            os.symlink(n[1], folderName + n[1])\n        index = index + 1\n        S.append(nS)\n    nS = set()\n    \nfor s in S:\n    print s\n    \n'

In [8]:
print "Done"


Done

In [ ]:
for smpl1 in range(0, SAMPLES - 1):
    maxKey1 = max(mapped[smpl1].keys())
    potential1 = list(sort(mapped[smpl1].keys()))
    index = 1
    count = 0
    
    for smpl2 in range(smpl1 + 1, SAMPLES):
        maxKey2 = max(mapped[smpl2].keys())
        potential2 = list(sort(mapped[smpl2].keys()))
        n1 = len(potential1)
        
        for i in range(n1):
            vI = potential1[i]
            centI = props[smpl1][vI][:2]
            nbrsI = [x for x in potential1 if x != i and numpy.linalg.norm(centI - props[smpl1][x][:2]) < Td and dists[smpl1][vI, x] < Th]
            
            chosen = [(smpl1, vI)]
            n2 = len(potential2)
                
            for j in range(n2):            
                #print n2, len(potential2)
                vJ = potential2[j]
                
                if not overlaps(smpl1, vI, smpl2, vJ):
                    continue
                    
                centJ = props[smpl2][vJ][:2]
                nbrsJ = [x for x in potential2 if x != j and numpy.linalg.norm(centJ - props[smpl2][x][:2]) < Td and dists[smpl1][vJ, x] < Th]
                
                if len(nbrsI) + len(nbrsJ) < 32:
                    continue

                print len(nbrsI), len(nbrsJ)
                fdsf
                
                
                # Check right distances
                distIKd = np.sqrt(sum((centI - centK)**2))
                if distIKd < Td:
                    distJKd = np.sqrt(sum((centJ - centK)**2))
                    if distJKd < Td:
                        continue

                distIKh = texton_dist[vI, vK]
                if distIKh > Th:
                    distJKh = texton_dist[vJ, vK]
                    if distJKh > Th:
                        continue
                
                #centJ = sp_props[smpl2][vJ][:2]

                chosen += [(smpl2, vJ)]
                if (len(chosen) >= 34):
                    break

            if len(chosen) < 34:
                continue

            folderName = TARGET + "group_" + str(index) + "/"
            shutil.rmtree(folderName, True)
            os.mkdir(folderName)
    
            #print mapped
            for (k, n) in chosen:
                mFile = mapped[k][n]
                #print folderName + mFile
                if k == smpl1:
                    print k
                    #potential1.remove(n)
                else:
                    potential2.remove(n)
                    
                if count < 2:
                    os.symlink("../" + mFile + ".png", folderName + "img_" + mFile + ".png")
                    os.symlink("../" + mFile + "_hist.png", folderName + "hist_" + mFile  + ".png")
                else:
                    os.symlink("../" + mFile + ".png", folderName + mFile + ".png")
                count += 1
            
            os.symlink("../" + refs[smpl1], folderName + "org_" + str(smpl1));
            os.symlink("../" + refs[smpl2], folderName + "org_" + str(smpl2));
    
            #print chosen[0]
            #break
            index += 1    
            count = 0