def _calculateCMatrix(self): self.logger.debug('Calculating GLSZM matrix in C') # Do not pass kwargs directly, as distances may be specified, which must be forced to [1] for this class angles = imageoperations.generateAngles( self.boundingBoxSize, force2D=self.kwargs.get('force2D', False), force2Ddimension=self.kwargs.get('force2Ddimension', 0)) Ng = self.coefficients['Ng'] Ns = self.coefficients['Np'] P_glszm = cMatrices.calculate_glszm(self.matrix, self.maskArray, angles, Ng, Ns) # Delete rows that specify gray levels not present in the ROI NgVector = range(1, Ng + 1) # All possible gray values GrayLevels = self.coefficients[ 'grayLevels'] # Gray values present in ROI emptyGrayLevels = numpy.array( list(set(NgVector) - set(GrayLevels))) # Gray values NOT present in ROI P_glszm = numpy.delete(P_glszm, emptyGrayLevels - 1, 0) return P_glszm
def _calculateMatrix(self, voxelCoordinates=None): """ Number of times a region with a gray level and voxel count occurs in an image. P_glszm[level, voxel_count] = # occurrences For 3D-images this concerns a 26-connected region, for 2D an 8-connected region """ self.logger.debug('Calculating GLSZM matrix in C') Ng = self.coefficients['Ng'] Ns = numpy.sum(self.maskArray) matrix_args = [ self.imageArray, self.maskArray, Ng, Ns, self.settings.get('force2D', False), self.settings.get('force2Ddimension', 0) ] if self.voxelBased: matrix_args += [ self.settings.get('kernelRadius', 1), voxelCoordinates ] P_glszm = cMatrices.calculate_glszm( *matrix_args) # shape (Nvox, Ng, Ns) # Delete rows that specify gray levels not present in the ROI NgVector = range(1, Ng + 1) # All possible gray values GrayLevels = self.coefficients[ 'grayLevels'] # Gray values present in ROI emptyGrayLevels = numpy.array( list(set(NgVector) - set(GrayLevels)), dtype=int) # Gray values NOT present in ROI P_glszm = numpy.delete(P_glszm, emptyGrayLevels - 1, 1) return P_glszm
def _calculateMatrix(self): """ Number of times a region with a gray level and voxel count occurs in an image. P_glszm[level, voxel_count] = # occurrences For 3D-images this concerns a 26-connected region, for 2D an 8-connected region """ self.logger.debug('Calculating GLSZM matrix in C') Ng = self.coefficients['Ng'] Ns = self.coefficients['Np'] P_glszm, angles = cMatrices.calculate_glszm( self.matrix, self.maskArray, Ng, Ns, self.settings.get('force2D', False), self.settings.get('force2Ddimension', 0)) # Delete rows that specify gray levels not present in the ROI NgVector = range(1, Ng + 1) # All possible gray values GrayLevels = self.coefficients[ 'grayLevels'] # Gray values present in ROI emptyGrayLevels = numpy.array( list(set(NgVector) - set(GrayLevels))) # Gray values NOT present in ROI P_glszm = numpy.delete(P_glszm, emptyGrayLevels - 1, 0) return P_glszm
def _calculateCMatrix(self): self.logger.debug('Calculating GLSZM matrix in C') size = numpy.max(self.matrixCoordinates, 1) - numpy.min( self.matrixCoordinates, 1) + 1 angles = imageoperations.generateAngles(size, **self.kwargs) Ng = self.coefficients['Ng'] Ns = self.coefficients['Np'] return cMatrices.calculate_glszm(self.matrix, self.maskArray, angles, Ng, Ns)
def _calculateCMatrix(self): self.logger.debug('Calculating GLSZM matrix in C') size = numpy.max(self.matrixCoordinates, 1) - numpy.min( self.matrixCoordinates, 1) + 1 # Do not pass kwargs directly, as distances may be specified, which must be forced to [1] for this class angles = imageoperations.generateAngles( size, force2Dextraction=self.kwargs.get('force2D', False), force2Ddimension=self.kwargs.get('force2Ddimension', 0)) Ng = self.coefficients['Ng'] Ns = self.coefficients['Np'] return cMatrices.calculate_glszm(self.matrix, self.maskArray, angles, Ng, Ns)
def _calculateCMatrix(self): self.logger.debug('Calculating GLSZM matrix in C') Ng = self.coefficients['Ng'] Ns = self.coefficients['Np'] P_glszm, angles = cMatrices.calculate_glszm( self.matrix, self.maskArray, Ng, Ns, self.kwargs.get('force2D', False), self.kwargs.get('force2Ddimension', 0)) # Delete rows that specify gray levels not present in the ROI NgVector = range(1, Ng + 1) # All possible gray values GrayLevels = self.coefficients[ 'grayLevels'] # Gray values present in ROI emptyGrayLevels = numpy.array( list(set(NgVector) - set(GrayLevels))) # Gray values NOT present in ROI P_glszm = numpy.delete(P_glszm, emptyGrayLevels - 1, 0) return P_glszm