본문 바로가기
Data Analysis/Data Analysis & Image Processing

5. OpenCV 이미지 변형

by SeleniumBindingProtein 2022. 4. 7.
728x90
반응형
#cv2.resize(image, dsize, fx, fy, interpolation): 이미지의 크기를 조절합니다.
#dsize: Manual Size
#fx: 가로 비율
#fy: 세로 비율
#interpolation: 보간법
#1)INTER_CUBIC: 사이즈를 크게 할 때 주로 사용합니다.
#2)INTER_AREA: 사이즈를 작게 할 때 주로 사용합니다.
#보간법은 사이즈가 변할 때 픽셀 사이의 값을 조절하는 방법을 의미합니다.

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('cat2.jpg')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

expand = cv2.resize(image, None, fx=2.0, fy=2.0, interpolation=cv2.INTER_CUBIC)
plt.imshow(cv2.cvtColor(expand, cv2.COLOR_BGR2RGB))
plt.show()

shrink = cv2.resize(image, None, fx=0.8, fy=0.8, interpolation=cv2.INTER_AREA)
plt.imshow(cv2.cvtColor(shrink, cv2.COLOR_BGR2RGB))
plt.show()

#cv2.warpAffine(image, M, dsize): 이미지의 위치를 변경합니다.
#M: 변환 행렬
#dsize: Manual Size

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

image = cv2.imread('cat2.jpg')

# 행과 열 정보만 저장합니다.
height, width = image.shape[:2]

M = np.float32([[1, 0, 50], [0, 1, 10]])
dst = cv2.warpAffine(image, M, (width, height))

plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
plt.show()

#cv2.getRotationMatrix2D(center, angle, scale): 이미지 회전을 위한 변환 행렬을 생성합니다.
#center: 회전 중심
#angle: 회전 각도
#scale: Scale Factor

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

image = cv2.imread('cat2.jpg')

# 행과 열 정보만 저장합니다.
height, width = image.shape[:2]

M = cv2.getRotationMatrix2D((width / 2, height / 2), 90, 0.5)
dst = cv2.warpAffine(image, M, (width, height))

plt.imshow(cv2.cvtColor(dst, cv2.COLOR_BGR2RGB))
plt.show()

728x90
반응형

댓글