<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def download_segmentation_image(self, mapobject_type_name,
            plate_name, well_name, well_pos_y, well_pos_x, tpoint=0, zplane=0, align = False):
        '''Downloads a segmentation image.

        Parameters
        ----------
        plate_id: int
            ID of the parent experiment
        mapobject_type_name: str
            name of the segmented objects
        plate_name: str
            name of the plate
        well_name: str
            name of the well in which the image is located
        well_pos_y: int
            y-position of the site relative to the well grid
        well_pos_x: int
            x-position of the site relative to the well grid
        tpoint: int, optional
            zero-based time point index (default: ``0``)
        zplane: int, optional
            zero-based z-plane index (default: ``0``)
        align: bool, optional
            option to apply alignment to download

        Returns
        -------
        numpy.ndarray[numpy.int32]
            labeled image where each label encodes a segmented object

        See also
        --------
        :func:`tmserver.api.mapobject.download_segmentations`
        :class:`tmlib.models.mapobject.MapobjectSegmentation`
        '''
        response = self._download_segmentation_image(
            mapobject_type_name, plate_name, well_name, well_pos_y, well_pos_x,
            tpoint, zplane, align
        )
        return np.array(response, dtype=np.int32)