기계는 거짓말하지 않는다

Python OpenCV (3) 이미지 편집 본문

Python

Python OpenCV (3) 이미지 편집

KillinTime 2021. 7. 14. 20:01

OpenCV를 이용한 이미지 편집(붙여넣기, 회전, 반전 등)의 예

640 x 360 (16:9)로 resize한 이미지 이용

import cv2
import numpy as np

img = cv2.imread("aurora.jpg")
img2 = cv2.imread("rain.jpg")

img = cv2.resize(img, (640, 360))
img2 = cv2.resize(img2, (640, 360))

# 붙여넣기
img = cv2.rectangle(img, (200, 100), (350, 300), (0, 255, 0), 2)

img2 = cv2.resize(img2, (150, 200)) # 좌표 x, y  350-200, 300-100
img[100:300, 200:350] = img2 # [ : ] 좌표 y, x  (100 ~ 300) (200, 350)
cv2.imshow("change", img)
cv2.waitKey()

 

붙여넣기

# 더하기
img2 = cv2.resize(img2, (640, 360))
add1 = img + img2 # 크기를 맞춰서 더함
add2 = cv2.addWeighted(img, float(0.8), img2, float(0.2), 5) # float 합이 1. 첫번째는 0.8, 두번째는 0.2
cv2.imshow("1", add1)
cv2.imshow("2", add2)
cv2.waitKey()

더하기 1, 더하기 2

# 이미지 회전
height, width, c = img.shape
img90 = cv2.rotate(img, cv2.ROTATE_90_CLOCKWISE) # 시계방향 90도 회전
img270 = cv2.rotate(img, cv2.ROTATE_90_COUNTERCLOCKWISE) # 반시계방향으로 90도 회전
img180 = cv2.rotate(img, cv2.ROTATE_180)

cv2.imshow('90', img90)
cv2.imshow('270', img270)
cv2.waitKey()

270도 회전, 90도 회전

# 이미지 반전
img = cv2.flip(img, 0)
cv2.imshow('flip', img)
cv2.waitKey()

이미지 반전

# 이미지 아핀
height, width, channel = img.shape
matrix = cv2.getRotationMatrix2D((width/2, height/2), 45, 2) # 중심점, 각도, 스케일
img = cv2.warpAffine(img, matrix, (width, height))
cv2.imshow("affine", img)
cv2.waitKey()

아핀

 

'Python' 카테고리의 다른 글

Python Crawling  (0) 2021.07.19
Python OpenCV (4) 이미지 편집  (0) 2021.07.14
Python OpenCV (2) 도형 그리기  (0) 2021.07.13
Python OpenCV (1) 기본 이미지 다루기  (0) 2021.07.11
Python UnicodeDecodeError  (0) 2021.07.10
Comments