Exemplo n.º 1
0
 def total_count(self):
     """Returns the number of grains detected.
     
     Raises:
         ContoursError
     """
     # check runtime order
     if self.contours is None:
         raise errors.ContoursError("self.contours has not yet been set.\nRun Grains().set_contours() to do so.")
     return len(self.contours)
Exemplo n.º 2
0
    def set_moments(self):
        """Extracts moments from OpenCV contours.

        Raises:
            ContoursError
        """

        # check runtime order
        if self.contours is None:
            raise errors.ContoursError("self.contours has not yet been set.\nRun Grains().set_contours() to do so.")
        # collect all moments
        moments = []
        for c in self.contours:
            m = cv2.moments(c)
            moments.append(m)
        self.moments = moments
Exemplo n.º 3
0
    def areas(self):
        """Returns the area of each detected grain in square micrometers.
        
        Raises:
            ContoursError
        """

        # check runtime order
        if self.contours is None:
            raise errors.ContoursError("self.contours has not yet been set.\nRun Grains().set_contours to do so.")
        # collect all areas
        areas = []
        for c in self.contours:
            pix_area = cv2.contourArea(c)
            microns_area = self._pix_area_to_microns_area(pix_area)
            areas.append(microns_area)
        return areas