1. Image scaling1.1. OpenCV image scaling1.2. Actual effect display1.3.matplotlib: Python's 2D plotting library.
cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)
Parameter meaning:
InputArray src: input image
OutputArray ds: output image
Size: output image size
fx, fy: scaling coefficients along the x-axis and y-axis
interpolation: interpolation method, you can choose INTER_NEAREST (nearest neighbor interpolation), INTER_LINEAR (bilinear interpolation (default setting)), INTER_AREA (resample using pixel area relationship), INTER_CUBIC (bicubic interpolation of 4x4 pixel neighborhood), INTER_LANCZOS4 (Lanczos interpolation of 8x8 pixel neighborhood)
Note:
Code path:
/home/pi/DOGZILLA_Lite_class/4.Open Source CV/B.Geometric_Transformations/01_Image_Scaling.ipynb
ximport cv2
import matplotlib.pyplot as plt # Python 2D drawing library
# Read the original image
img = cv2.imread('yahboom.jpg')
# Print the image size
print(img.shape)
# Assign the image height and width to x, y respectively
x, y = img.shape[0:2]
# Display the original image
#cv.imshow('OriginalPicture', img)
# Scale to half of the original size, output size format is (width, height)
img_test1 = cv2.resize(img, (int(y / 2), int(x / 2)))
# cv2.imshow('resize0', img_test1)
# cv2.waitKey()
# Nearest neighbor interpolation method scaling
# Scale to one-fourth of the original size
img_test2 = cv2.resize(img, (0, 0), fx=0.25, fy=0.25, interpolation=cv2.INTER_NEAREST)
# cv.imshow('resize1', img_test2)
#cv.waitKey()
#cv.destroyAllWindows()
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dst1 = cv2.cvtColor(img_test1, cv2.COLOR_BGR2RGB)
dst2 = cv2.cvtColor(img_test2, cv2.COLOR_BGR2RGB)
# show original image
plt.imshow(img)
plt.show()
xxxxxxxxxx
# Display zoom 1/2
plt.imshow(dst1)
plt.show()
xxxxxxxxxx
# Display zoom 1/4 neighbor interpolation method zoom
plt.imshow(dst2)
plt.show()
The following is a small example of matplotlib
Reference tutorial:https://www.runoob.com/numpy/numpy-matplotlib.html
xxxxxxxxxx
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(1,11)
y = 2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x,y)
plt.show()