728x90
# Task1 : Resizing
src = cv2.imread('Lena.jpg')
resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None)
dst = cv2.resize(src,None,fx=1.3,fy=1.3, interpolation= cv2.INTER_CUBIC)
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()


# Task2 : Transformation
# cv2.warpAffine(영상, 2x3실수행렬, 결과영상크기(0,0)는원본, 출력영상, 보간법, bordermode, bordervalue)
src = cv2.imread('Lena.jpg')

M = np.array([[1, 0, 100],
              [0, 1, 50]], dtype = np.float32) 

dst = cv2.warpAffine(src, M ,(0,0), borderMode=cv2.BORDER_REFLECT)

cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()


 

# Task 3 : affine 변환 점 세개로 하기
# cv2.warpAffine(영상, 2x3실수행렬, 결과영상크기(0,0)는원본, 출력영상, 보간법, bordermode, bordervalue)
# cv2.getAffineTransform(3개의 원본 좌표, 3개의 결과 좌표)

src = cv2.imread('Lena.jpg')
h, w = src.shape[:2]

#시작점, 끝점, 실수형 행렬로 만들기 
start = np.array([[0,0],[0,h],[w,0]],dtype=np.float32)
end = np.array([[30,30],[300,500],[w+50,0]], dtype=np.float32)

#어파인변환 행렬 따오기 
M = cv2.getAffineTransform(start,end)
dst = cv2.warpAffine(src, M, (0,0)) # 어파인변환

cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()


# Task 4 : perspective 변환 점 4개로 하기 
# cv2.warpPerspective(영상, 2x3실수행렬, 결과영상크기(0,0)는원본, 출력영상, 보간법, bordermode, bordervalue)
# cv2.getPerspectiveTransform(시작점, 끝점)

src = cv2.imread('st_changhak02.JPG')
h, w = src.shape[:2]
#4점짜리 실수행렬 구하기
start = np.array([[60,281],[881,165],[1228,268],[334,618]],dtype=np.float32)
end = np.array([[0,0],[1200,0],[1200,700],[0,700]], dtype=np.float32)
#getPerspective로 변환행렬 따오기
M = cv2.getPerspectiveTransform(start, end)
#투시변환 
dst = cv2.warpPerspective(src, M ,(0,0),flags = cv2.INTER_CUBIC)

cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()


# Task 5 : 영상의 회전
# cv2.getRotationMatrix2D(center, angle, sclae)

src = cv2.imread('Lena.jpg')
h, w = src.shape[:2]
#회전행렬따오기
M = cv2.getRotationMatrix2D((w//2, h//2), 45,1)
dst = cv2.warpAffine(src, M, (0,0),borderMode=cv2.BORDER_REFLECT)

cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()

728x90

+ Recent posts