def getTransformedDataset(self, imageCollections, onlyPatchzone=True): dataset = [] namesObservations = [] coordinates = [] for imageCollection in imageCollections: imageCount = 0 for image in imageCollection: im = image imageName = imageCollection.files[imageCount] imageWorker = RGBImageWorker(im, convert=True) (binaryImageWorkerCenters, HEDAVWorker, BRVLWorker, binaryImageWorker) = imageWorker.getBinaryImage() workerPack = [imageWorker, BRVLWorker, HEDAVWorker] generalStatistics = imageWorker.getGeneralStatistics( hara=True, zern=False) centers = binaryImageWorkerCenters.getCenters() print len(centers) for center in centers: print "center" binaryPatch = binaryImageWorker.getPatch( center, self.patchSize) binaryStatistics = binaryPatch.getGeneralStatistics() namesObservations.append(imageName) coordinates.append([center[0], center[1]]) observation = binaryStatistics observation.extend(copy.deepcopy(generalStatistics)) if onlyPatchzone: for worker in workerPack: patch = worker.getPatch(center, self.patchSize) observation.extend( patch.getGeneralStatistics( hara=True, zern=True, tamura=False, only1D=patch.image[binaryPatch.image])) observation.extend( patch.getGeneralStatistics(hara=True, zern=True, tamura=True)) else: for patchsize in range(1, self.patchSize, 10): for worker in workerPack: patch = worker.getPatch(center, patchsize) observation.extend( patch.getGeneralStatistics()) patch = imageWorker.getPatch(center, self.patchSize) observation.extend( patch.getGeneralStatistics(hara=True, zern=True, tamura=True)) print len(observation) dataset.append(observation) print imageName imageCount += 1 dataset = np.array(dataset) return (namesObservations, coordinates, dataset)
def saveImages(self): for index in range(self.length): image = self.getImageFromName(self.namesObservations[index]) imageWorker = RGBImageWorker(image, self.rows, self.columns) patch = imageWorker.getPatch(self.coordinates[index], self.patchSize) reducedFileName = "%s_%d.tif" % (Utils.getFolderName(self.namesObservations[index]), index) if self.targetVector is None: fileName = os.path.join(data_io.get_testing_folder(), data_io.get_test_folder(), reducedFileName) elif self.targetVector[index] == 1: fileName = os.path.join(data_io.get_training_folder(), data_io.get_positive_folder(), reducedFileName) else: fileName = os.path.join(data_io.get_training_folder(), data_io.get_negative_folder(), reducedFileName) io.imsave(fileName, patch.image)
def getTransformedDataset(self, imageCollections, onlyPatchzone=True): dataset = [] namesObservations = [] coordinates = [] for imageCollection in imageCollections: imageCount = 0 for image in imageCollection: im = image imageName = imageCollection.files[imageCount] imageWorker = RGBImageWorker(im, convert=True) (binaryImageWorkerCenters, HEDAVWorker, BRVLWorker, binaryImageWorker) = imageWorker.getBinaryImage() workerPack = [imageWorker, BRVLWorker, HEDAVWorker] generalStatistics = imageWorker.getGeneralStatistics(hara=True, zern=False) centers = binaryImageWorkerCenters.getCenters() print len(centers) for center in centers: print "center" binaryPatch = binaryImageWorker.getPatch(center, self.patchSize) binaryStatistics = binaryPatch.getGeneralStatistics() namesObservations.append(imageName) coordinates.append([center[0], center[1]]) observation = binaryStatistics observation.extend(copy.deepcopy(generalStatistics)) if onlyPatchzone: for worker in workerPack: patch = worker.getPatch(center, self.patchSize) observation.extend(patch.getGeneralStatistics(hara=True, zern=True, tamura=False, only1D=patch.image[binaryPatch.image])) observation.extend(patch.getGeneralStatistics(hara=True, zern=True, tamura=True)) else: for patchsize in range(1, self.patchSize, 10): for worker in workerPack: patch = worker.getPatch(center, patchsize) observation.extend(patch.getGeneralStatistics()) patch = imageWorker.getPatch(center, self.patchSize) observation.extend(patch.getGeneralStatistics(hara=True, zern=True, tamura=True)) print len(observation) dataset.append(observation) print imageName imageCount += 1 dataset = np.array(dataset) return (namesObservations, coordinates, dataset)
def saveImages(self): for index in range(self.length): image = self.getImageFromName(self.namesObservations[index]) imageWorker = RGBImageWorker(image, self.rows, self.columns) patch = imageWorker.getPatch(self.coordinates[index], self.patchSize) reducedFileName = "%s_%d.tif" % (Utils.getFolderName( self.namesObservations[index]), index) if self.targetVector is None: fileName = os.path.join(data_io.get_testing_folder(), data_io.get_test_folder(), reducedFileName) elif self.targetVector[index] == 1: fileName = os.path.join(data_io.get_training_folder(), data_io.get_positive_folder(), reducedFileName) else: fileName = os.path.join(data_io.get_training_folder(), data_io.get_negative_folder(), reducedFileName) io.imsave(fileName, patch.image)