Tech & Development/Image Processing

[ OpenCV ] Basic 5 - 이미지 상하, 좌우 대칭 (Flip)

Theo (테오) 2022. 3. 2. 19:20
반응형

Image Flip

x축 또는 y축을 가로질러 이미지를 뒤집는 방법을 소개하겠습니다.  다시말하자면 이미지를 수평 또는 수직을 기준으로 미러링 이미지로 변환하는 것입니다. Flip은 이미지 데이터를 부풀리기 위해서 사용되기도 합니다.


Import packages

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

Jupyter Notebook 및 Google Colab에서 이미지를 표시할 수 있도록 Function으로 정의

def img_show(title='image', img=None, figsize=(8 ,5)):
    plt.figure(figsize=figsize)
 
    if type(img) == list:
        if type(title) == list:
            titles = title
        else:
            titles = []
 
            for i in range(len(img)):
                titles.append(title)
 
        for i in range(len(img)):
            if len(img[i].shape) <= 2:
                rgbImg = cv2.cvtColor(img[i], cv2.COLOR_GRAY2RGB)
            else:
                rgbImg = cv2.cvtColor(img[i], cv2.COLOR_BGR2RGB)
 
            plt.subplot(1, len(img), i + 1), plt.imshow(rgbImg)
            plt.title(titles[i])
            plt.xticks([]), plt.yticks([])
 
        plt.show()
    else:
        if len(img.shape) < 3:
            rgbImg = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
        else:
            rgbImg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
 
        plt.imshow(rgbImg)
        plt.title(title)
        plt.xticks([]), plt.yticks([])
        plt.show()

Load Image

cv2_image = cv2.imread('asset/images/test_image.jpg', cv2.IMREAD_COLOR)

Flip

이미지를 가로로 뒤집기 (좌우 대칭)

print("[INFO] flipping image horizontally...")
flipped = cv2.flip(cv2_image, 1)
img_show(["Original", "Flipped Horizontally"], [cv2_image, flipped])

이미지를 세로로 뒤집기 (상하 대칭)

print("[INFO] flipping image vertically...")
flipped = cv2.flip(cv2_image, 0)
img_show(["Original", "Flipped Vertically"], [cv2_image, flipped])

이미지를 두 축(x, y)을 따라 뒤집기 (좌우, 상하 대칭)

반응형