def getEdgeNeighborTest(): from algorithm import getEdge,getNeighborMatrix,getNeighbor labelMap = getSlic(img,200) show(mark_boundaries(img,labelMap),0) edge = getEdge(labelMap) neighborMatrix = getNeighborMatrix(labelMap) m, n = labelMap.shape dic = getNeighbor(0,labelMap,neighborMatrix,4) print dic imgg = np.zeros((m,n)) for k in dic: imgg[labelMap==k]=dic[k] show(imgg) imgg = np.zeros((m,n)) for k in edge: imgg[labelMap==k]=1 show(imgg) edge = getEdge(labelMap,0.06) imgg = np.zeros((m,n)) for k in edge: imgg[labelMap==k]=1 print 'edge width 0.06' show(imgg)
def my4test(): #if 1: from algorithm import * labelMap = getSlic(rgbImg,200) maxLabel = labelMap.max()+1 m, n = labelMap.shape coarseMethods = ['MEAN'] coarseDic = getCoarseDic(imgName,coarseMethods) # show(coarseDic) sumCoarseImg = getSumCoarseImg(coarseDic) coarseImgs=coarseDic.values() img = sk.color.rgb2lab(rgbImg) # 获得4+4维 distance degreeVectors, Ws = getVectors(img, labelMap) weightSumVectors = getWeightSum(labelMap, degreeVectors, Ws) diffEdges,diffNeighbors = getAllDiffEdgeAndNeighbor(labelMap,Ws) vectors = np.append(weightSumVectors,diffEdges,1) vectors = np.append(vectors,diffNeighbors,1) vectorsTrains = [] coarseTrains = [] for coarseImg in coarseImgs: coarseTrain, vectorsTrainTag = getCoarseTrain(coarseImg, labelMap) vectorsTrains += list(vectors[vectorsTrainTag]) coarseTrains += list(coarseTrain) elm = getElm(np.array(vectorsTrains), np.array(coarseTrains)) refined = elm.predict(vectors)[:,0] refinedImg = valueToLabelMap(labelMap,normalizing(refined)) show(mark_boundaries(sk.color.lab2rgb(img),labelMap)) print diffEdges.shape show(valueToLabelMap(labelMap,diffEdges.sum(1))) show(valueToLabelMap(labelMap,diffNeighbors[:,:4].sum(1))) # show(valueToLabelMap(labelMap,diffNeighbors[:,4:].sum(1))) # show(valueToLabelMap(labelMap,diffNeighbors.sum(1))) show(valueToLabelMap(labelMap,vectors[:,4:8].sum(1)))