소스 뷰어
import numpy as np
import matplotlib.pyplot as plt
# lena.jpg 이미지를 Matplotlib으로 로드 (이미지는 RGB 형식으로 읽힘)
image_rgb = plt.imread('lena.jpg')
# 스케일 비율 설정
scale_x = 1.2 # 가로 방향 확대 비율
scale_y = 0.8 # 세로 방향 축소 비율
# 원본 이미지 크기와 새로운 이미지 크기 계산
height, width, channels = image_rgb.shape
new_width, new_height = int(width * scale_x), int(height * scale_y)
# 새로운 이미지 좌표를 원본 좌표로 매핑
new_x_coords = np.arange(new_width) / scale_x
new_y_coords = np.arange(new_height) / scale_y
# 원본 좌표를 정수로 변환
original_x = np.clip(new_x_coords.astype(int), 0, width - 1)
original_y = np.clip(new_y_coords.astype(int), 0, height - 1)
# 새로운 이미지를 생성하고 매핑
resized_image = image_rgb[original_y[:, None], original_x[None, :]]
# 결과 출력
plt.figure(figsize=(10, 5))
# 원본 이미지
plt.subplot(1, 2, 1)
plt.imshow(image_rgb)
plt.title("Original Image")
plt.axis("off")
# 크기 변경된 이미지
plt.subplot(1, 2, 2)
plt.imshow(resized_image)
plt.title("Resized Image(Numpy)")
plt.axis("off")
plt.tight_layout()
plt.show()