pyramid以及横向拼接不同尺寸的图片
图像金字塔pyramid不同于一般的图像放缩resize,图像金字塔的上采样得到图像的长宽均为原来的2倍,下采样得到的长宽均为原来的1/2。resize可以以任意比例放缩图像。
pyramid的目的在于多尺度观察图片。
Example
import cv2
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
file_path_s = "./img-input/diana-221116-square.png"
def pyr_up_down():
img = cv2.imread(file_path_s)
r1 = cv2.pyrUp(img)
r3 = cv2.pyrDown(img)
images = [r3, img, r1]
res_m, res_n = 0, 0
for img_item in images:
res_n += img_item.shape[1]
res_m = res_m if res_m >= img_item.shape[0] else img_item.shape[0]
channel_num = 3
res = np.zeros((res_m, res_n, channel_num))
col_ind = 0
for img_item in images:
res[0:img_item.shape[0], col_ind: col_ind+img_item.shape[1]] = cv2.cvtColor(img_item, cv2.COLOR_BGR2RGB)
col_ind += img_item.shape[1]
plt.figure(0)
res = Image.fromarray(res.astype('uint8'))
plt.imshow(res)
plt.title("all size images")
plt.xticks([])
plt.yticks([])
plt.show()
if __name__ == '__main__':
pyr_up_down()
result: