In this OpenCV tutorial, we learn the syntax of cv2.resize() and how to use this function to resize a given image. We can use cv2.resize() function to upscale, downscale, or resize to a desired size (considering or not considering the aspect ratio).
OpenCV Python – Resize image
Resizing an image means changing the dimensions of it, be it width alone, height alone or changing both of them. Also, the aspect slot gacor ratio of the original image could be preserved in the resized image. To resize an image, OpenCV provides cv2.resize() function.
Syntax of cv2.resize()
The syntax of resize function in OpenCV is
cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])
where
Parameter | Description |
src | [required] source/input image |
dsize | [required] desired size for the output image |
fx | [optional] scale factor along the horizontal axis |
fy | [optional] scale factor along the vertical axis |
interpolation | [optional] flag that takes one of the following methods. INTER_NEAREST – a nearest-neighbor interpolation INTER_LINEAR – a bilinear interpolation (used by default) INTER_AREA – resampling using pixel area relation. It may be a preferred method for image decimation, as it gives moire’-free results. But when the image is zoomed, it is similar to the INTER_NEAREST method. INTER_CUBIC – a bicubic interpolation over 4×4 pixel neighborhood INTER_LANCZOS4 – a Lanczos interpolation over 8×8 pixel neighborhood |
Examples for using cv2.resize()
Resizing an image can be done in many ways. We will look into examples demonstrating the following resize operations.
- Preserve Aspect Ratio (height to width ratio of image is preserved)
- Downscale (Decrease the size of the image)
- Upscale (Increase the size of the image)
- Do not preserve Aspect Ratio
- Resize only the width (Increase or decrease the width of the image keeping height unchanged)
- Resize only the height slot (Increase or decrease the height of the image keeping width unchanged)
- Resize to specific width and height
Following is the original image with dimensions (149,200,4) (height, width, number of channels) on which we shall experiment on :
1. Downscale – Resize and Preserve Aspect Ratio
In the following example, scale_percent
value holds the percentage by which image has to be scaled. Providing a value <100 downscales the image provided. We slot88 will use this scale_percent
value along with original image’s dimensions to calculate the width and height of output image.
resize-image.py
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
scale_percent = 60 # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output
Original Dimensions : (149, 200, 4)
Resized Dimensions : (89, 120, 4)
The original image with dimensions [149 x 200 x 4] has been resized to [89, 120, 4] using resize() function.
2. Upscale – Resize and Preserve Aspect Ratio
In the following example, scale_percent value holds the percentage by which image has to be scaled. Providing a value >100 upscales the image provided. spaceman slot
resize-image.py
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
scale_percent = 220 # percent of original size
width = int(img.shape[1] * scale_percent / 100)
height = int(img.shape[0] * scale_percent / 100)
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output
Original Dimensions : (149, 200, 4)
Resized Dimensions : (327, 440, 4)
3. Resize only width and do not preserve Aspect Ratio
In this example, we provided a specific value in pixels for width and left the height unchanged.
resize-image.py
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
width = 440
height = img.shape[0] # keep original height
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output
Original Dimensions : (149, 200, 4)
Resized Dimensions : (149, 440, 4)
As we have increased only the width, the output image looks stretched horizontally.
4. Resize only height and do not preserve Aspect Ratio
In the following example, scale_percent value holds the percentage by which height has to be scaled. Or you may also provide a specific value in pixels. slot garansi kekalahan
resize-image.py
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
width = img.shape[1] # keep original width
height = 440
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output
Original Dimensions : (149, 200, 4)
Resized Dimensions : (440, 200, 4)
As we have increased only the height, the output image looks stretched vertically.
5. Resize to specific width and height
In the following example, we shall provide specific value in pixels for both width and height.
resize-image.py
import cv2
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
print('Original Dimensions : ',img.shape)
width = 350
height = 450
dim = (width, height)
# resize image
resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)
print('Resized Dimensions : ',resized.shape)
cv2.imshow("Resized image", resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Output
Original Dimensions : (149, 200, 4)
Resized Dimensions : (450, 350, 4)
Conclusion
Concluding this OpenCV Python Tutorial, we have learned joker123 how to resize an image in Python using OpenCV resize() function.