How to resize an image with OpenCV2.0 and Python2.6

后端 未结 5 1859
暗喜
暗喜 2020-11-27 10:26

I want to use OpenCV2.0 and Python2.6 to show resized images. I used and adopted this example but unfortunately, this code is for OpenCV2.1 and does not seem to be working o

5条回答
  •  渐次进展
    2020-11-27 11:14

    Here's a function to upscale or downscale an image by desired width or height while maintaining aspect ratio

    # Resizes a image and maintains aspect ratio
    def maintain_aspect_ratio_resize(image, width=None, height=None, inter=cv2.INTER_AREA):
        # Grab the image size and initialize dimensions
        dim = None
        (h, w) = image.shape[:2]
    
        # Return original image if no need to resize
        if width is None and height is None:
            return image
    
        # We are resizing height if width is none
        if width is None:
            # Calculate the ratio of the height and construct the dimensions
            r = height / float(h)
            dim = (int(w * r), height)
        # We are resizing width if height is none
        else:
            # Calculate the ratio of the width and construct the dimensions
            r = width / float(w)
            dim = (width, int(h * r))
    
        # Return the resized image
        return cv2.resize(image, dim, interpolation=inter)
    

    Usage

    import cv2
    
    image = cv2.imread('1.png')
    cv2.imshow('width_100', maintain_aspect_ratio_resize(image, width=100))
    cv2.imshow('width_300', maintain_aspect_ratio_resize(image, width=300))
    cv2.waitKey()
    

    Using this example image

    Simply downscale to width=100 (left) or upscale to width=300 (right)

提交回复
热议问题