示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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