728x90
반응형
<Introduction>
입력 이미지를 "상하좌우 대칭 변환 (Image Flip)"을 구현해 보고자 합니다.
opencv 라이브러리를 통해 간단하게 진행이 가능하지만, 전반적인 이미지 처리에 대한 이해를 다지고자 작성하였습니다.
<Flip>
이미지 대칭 변환(Flip)은 2차원에서는 width 방향, height 방향에 대하여 반전이 가능합니다.
입력 이미지의 크기와 이미지 대칭 변환을 한 출력 이미지의 크기는 동일합니다.
입력 이미지의 크기가 (w, h)일때, 입력 이미지 위의 좌표 (x, y)는 다음과 같은 수식의 형태로 결과 이미지에서 좌표 (x', y')에 매핑합니다.
[상하 대칭 변환]
$$ x' = x $$
$$ y' = h -1 -y $$
[좌우 대칭 변환]
$$ x' = w -1 -x $$
$$ y' = y $$
<구현>
import cv2
import numpy as np
#Load image
img = cv2.imread('./../Image02.png')
height, width = img.shape[0], img.shape[1]
#Flip
output = np.zeros((height, width,3), dtype=np.uint8)
for x in range(height):
for y in range(width):
xp = height - x - 1 #상하 반전
yp = width - y - 1 #좌우 반전
output[x,y] = img[xp, y] #상하 반전
# output[x, y] = img[x, yp] #좌우 반전
cv2.imwrite('./flip_implement.png', output)
728x90
반응형
'영상처리' 카테고리의 다른 글
[영상처리] Image Luminosity (밝기)와 Contrast (대조도) - python (구현) (0) | 2022.02.15 |
---|---|
[영상처리] Image Scale (python 직접구현) (0) | 2022.01.20 |
[영상처리] 이미지 색상 표현 (0) | 2022.01.19 |
[영상처리] Image Cropping (python 직접 구현) (0) | 2022.01.18 |
[영상처리] Grayscale image 만들기 (python 직접구현) (0) | 2022.01.17 |