'**SUMMARY**
Make the canvas larger but keep the image the same size.
**PARAMETERS**
* *size* - width and heigt tuple of the new canvas or give a single vaule in which to scale the image size, for instance size=2 would make the image canvas twice the size
* *color* - the color of the canvas
* *pos* - the position of the top left corner of image on the new canvas,
if none the image is centered.
**RETURNS**
The enlarged SimpleCV Image.
**EXAMPLE**
>>> img = Image("lenna")
>>> img = img.embiggen((1024,1024),color=Color.BLUE)
>>> img.show()'

def embiggen(self, size=None, color=Color.BLACK, pos=None):

    if ((not isinstance(size, tuple)) and (size > 1)):
        size = ((self.width * size), (self.height * size))
    if ((size == None) or (size[0] < self.width) or (size[1] < self.height)):
        logger.warning('image.embiggenCanvas:    the    size    provided    is    invalid')
        return None
    newCanvas = cv.CreateImage(size, cv.IPL_DEPTH_8U, 3)
    cv.SetZero(newCanvas)
    newColor = cv.RGB(color[0], color[1], color[2])
    cv.AddS(newCanvas, newColor, newCanvas)
    topROI = None
    bottomROI = None
    if (pos is None):
        pos = (((size[0] - self.width) / 2), ((size[1] - self.height) / 2))
    (topROI, bottomROI) = self._rectOverlapROIs((self.width, self.height), size, pos)
    if ((topROI is None) or (bottomROI is None)):
        logger.warning("image.embiggenCanvas:    the    position    of    the    old    image    doesn't    make    sense,    there    is    no    overlap")
        return None
    cv.SetImageROI(newCanvas, bottomROI)
    cv.SetImageROI(self.getBitmap(), topROI)
    cv.Copy(self.getBitmap(), newCanvas)
    cv.ResetImageROI(newCanvas)
    cv.ResetImageROI(self.getBitmap())
    return Image(newCanvas)
