2016-10-24 22 views
0

コンテキスト:私はSVMを使って画像を分析し、関心のあるピクセルを見つけます。低関心のピクセル(以下の完全コード)をフィルタリングした後、得られたバイナリマスクは、後に表示されるように格納される。それと同時に、私はバイナリマスクを通過し、見つかったパッチのリストを作るだけでなく、どのように多くのパッチを追跡するためにndimage.labelを使用します(機能の数)ndimage.label:特定のサイズのパッチを表示

問題/質問を見つけました:画像をIと一緒に働いているのは超高解像度なので、ピクセル数が「10000未満」の「ノイズ」グループがあり、その数はndimage.labelでカウントされます。これは、これらのノイズグループと個々のピクセルのために、わずか10パッチしかない画像が1000+とカウントされていることを意味します。オリジナルのバイナリマスクとラベル付きの配列が与えられている場合、特定のサイズのパッチのみが含まれるようにバイナリマスクを変更する方法はありますか?

 #SVM analyzes image 
     scoreMap = self.svmMachine.predict(inData) 
     scoreMap = scoreMap.reshape(origDims) 

     #An array with a score for each pixel is produced 
     self.allPixelScoreMaps[self.imageKeys[i]]['PxlScores'] = scoreMap  
     #print(scoreMap) 
     topPrct = np.percentile(scoreMap, 95) 

     #A binary mask is then created from the pixels of high interest 
     binaryMap = (scoreMap > topPrct).astype(np.int) 

     #The mask is then stored to be displayed later 
     self.allPixelScoreMaps[self.imageKeys[i]]['BinScores'] = binaryMap 


     labeled_array, num_features = ndimage.label(binaryMap, structure = self.labelCal) 


     self.allPixelScoreMaps[self.imageKeys[i]]['LabelMap'] = labeled_array 
     self.allPixelScoreMaps[self.imageKeys[i]]['NumFeatures'] = num_features 

答えて

関連する問題