반응형

이미지의 3포인트를 잡고 그 기준점을 옮김으로써 전체 이미지를 휘게 한다.

 

아래 3개의 라이브러리가 설치되어 있어야 하며, 이미지 jpg파일이 있어야 한다.

여기서는 'flippy.jpg' 이미지 사용

'''
라이브러리 설치
pip install opencv-python
pip install numpy
pip install matplotlib
'''

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 이미지 불러오기, 이미지 모양 추출
img = cv2.imread('flippy.jpg')      #   이미지 불러오기.
rows,cols,ch = img.shape            #   이미지 가로 세로
print(rows, cols, ch)

# 세 좌표점에 점 찍기
cv2.circle(img, (50, 50), 5, (255, 0, 0), -1)
cv2.circle(img, (200, 50), 5, (255, 0, 0), -1)
cv2.circle(img, (50, 200), 5, (255, 0, 0), -1)


# 원본 이미지의 좌표점 3지점(pts1) -> 휘게하려는 지점(pts2)
pts1 = np.float32([[50, 50], [200, 50], [50, 200]])
pts2 = np.float32([[10, 100], [200, 50], [100, 250]])


# pts1와 pts2 좌표점을 이용해서 전체적으로 이미지 비틀기
M = cv2.getAffineTransform(pts1, pts2)
dst = cv2.warpAffine(img, M, (cols, rows))


# plot(좌표점을 쉽게 볼 수 있는 플랫폼 제공)을 불러와서 보기
plt.subplot(121), plt.imshow(img), plt.title('Input')
plt.subplot(122), plt.imshow(dst), plt.title('Output')
plt.show()

해당 코드를 실행시키면 아래와 같이 나오게 된다.

plot이라는 플랫폼을 이용하면 아래와 같이 이미지를 확대 축소 옮기기 등 기본 메뉴를 제공한다.

plot는 matplotlib 패키지를 설치해야 이용 가능하다.

반응형

 

 

 

반응형

+ Recent posts