예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)