(self, image=None, contour=None, final=False)
updates angle of image, and centre using cv2 or PIL.
        NOTE: this assumes the floorplan is rectangular! if you live in a
        lighthouse, the angle will not be valid!
        input is cv2 contour or PIL image
        routines find the minnimum area rectangle that fits the image outline
updates angle of image, and centre using cv2 or PIL.
        NOTE: this assumes the floorplan is rectangular! if you live in a
        lighthouse, the angle will not be valid!
        input is cv2 contour or PIL image
        routines find the minnimum area rectangle that fits the image outline
updates angle of image and centre using cv2 or PIL . NOTE : this assumes the floorplan is rectangular! if you live in a lighthouse the angle will not be valid! input is cv2 contour or PIL image routines find the minnimum area rectangle that fits the image outline
def get_image_parameters(self, image=None, contour=None, final=False):
        '''
        updates angle of image, and centre using cv2 or PIL.
        NOTE: this assumes the floorplan is rectangular! if you live in a
        lighthouse, the angle will not be valid!
        input is cv2 contour or PIL image
        routines find the minnimum area rectangle that fits the image outline
        '''
        if contour is not None and HAVE_CV2:
            # find minnimum area rectangle that fits
            # returns (x,y), (width, height), theta - where (x,y) is the center
            x_y,l_w,angle = cv2.minAreaRect(contour)

        elif image is not None and HAVE_PIL:
            x_y, angle = self.PIL_get_image_parameters(image)

        else:
            return

        if angle < self.angle - 45:
            angle += 90
        if angle > 45-self.angle:
            angle -= 90

        if final:
            self.cx = x_y[0]
            self.cy = x_y[1]
            self.angle = angle
        self.log.info("MAP: image center: x:{}, y:{}, angle {:.2f}".format(
                      x_y[0], x_y[1], angle))
def get_image_parameters ( self , image = None , contour = None , final = False ) : if contour is not None and HAVE_CV2 : # find minnimum area rectangle that fits # returns (x,y), (width, height), theta - where (x,y) is the center x_y , l_w , angle = cv2 . minAreaRect ( contour ) elif image is not None and HAVE_PIL : x_y , angle = self . PIL_get_image_parameters ( image ) else : return if angle < self . angle - 45 : angle += 90 if angle > 45 - self . angle : angle -= 90 if final : self . cx = x_y [ 0 ] self . cy = x_y [ 1 ] self . angle = angle self . log . info ( "MAP: image center: x:{}, y:{}, angle {:.2f}" . format ( x_y [ 0 ] , x_y [ 1 ] , angle ) )