순방향 매핑 (forward mapping) (원본 → 목적)
역방향 매핑 (backward mapping) (목적 ← 원본)
import cv2 as cv
import numpy as np
src = cv.imread("Mandrill.bmp", cv.IMREAD_COLOR)
H,W,C = src.shape[:]
ratioX = 2 #row
ratioY = 3 #col
output = np.zeros((H * ratioX, W * ratioY, C), src.dtype)
for xd in range(H*ratioX):
for yd in range(W*ratioY):
for L in range(3):
x = xd / ratioX
y = yd / ratioY
X = int(x)
Y = int(y)
beta = x - X
alpha = y - Y
#양선형 보간
if (-1 < X < H and -1 < Y < W and -1 < X + 1 < H and -1 < Y + 1 < W):
# 가로방향 보간
mid1 = (1 - alpha) * src[X][Y][L] + alpha * src[X][Y + 1][L]
mid2 = (1 - alpha) * src[X + 1][Y][L] + alpha * src[X + 1][Y + 1][L]
# 세로방향 보간 (최종값)
output[xd][yd][L] = beta * mid2 + (1 - beta) * mid1
cv.imshow("input", src)
cv.imshow("output", output)
cv.imwrite('/Users/jiwonheo/bin/python3/Users/jiwonheo/Development/학교 강의/영상정보처리/lab3/Lowpass_filtering_3.bmp', output)
cv.waitKey(0)
동차 좌표계(homogeneous coordinates)
동차 좌표계에서 한 점(wx, wy, w)을 직교 좌로 나타내면
원근 변환을 수행하는 행렬 (Homography)