본문 바로가기
파이썬 (Python)/딥러닝 (Deep Learning)

Python opencv 이용하여 이미지 대칭 시켜서 출력 하는 방법

by ★√★ 2021. 2. 22.

안녕하세요, Davey입니다. 오늘 포스팅할 내용은 python의 opencv 라이브러리를 이용하여 이미지를 대칭시켜서 출력하는 방법에 대해서 설명 드리도록 하겠습니다. 이미지를 Flip (뒤집다) 는다고 생각하시면 됩니다.

 

Python opencv 이용하여 이미지 대칭 시켜서 출력 하는 방법 썸네일

 

원하는 이미지를 불러와서 Flip 시키기

: 일단 원하는 이미지를 불러오는 코드를 입력하고 그 불러온 이미지에 간단한 "flip" 이라는 메서드를 이용하여 사진을 뒤집어 보도록 하겠습니다. 

 

#opencv를 선언
import cv2

#원하는 이미지를 불러오는 코드를 입력
test_img_read = cv2.imread("001.png", cv2.IMREAD_COLOR)

#불러온 이미지를 기반으로 flip 시킴
test_img_revised = cv2.flip(test_img_read, 0)

 

- 위 코드를 간단하게 설명을 드리면, 대칭 메소드인 cv2.flip(이미지 읽어온 변수, 대칭하는 기준 값) 을 이용하여 이미지를 flip을 시키는 데, flip을 시키는 기준 축은 아래와 같습니다. 

 1) flipCode < 0은 XY 축 대칭(상하좌우 대칭)을 적용

 2) flipCode = 0은 X 축 대칭(상하 대칭)을 적용

 3) flipCode > 0은 Y 축 대칭(좌우 대칭)을 적용

 

Flip 시킨 이미지 크기 조정하기

: Flip된 이미지의 크기를 조정해보도록 하겠습니다. 이 부분은 이전 포스팅에서 설명을 드렸듯이 아래 코드를 사용을 하시면 됩니다. 혹시 이전 포스팅을 안 보고 오셨다면 아래 포스팅을 보시고 미리 선 공부해오시면 더 이해가 빠르실 거 같습니다. 

 

test_resize1 = cv2.resize(test_img_read, dsize=(500, 500), interpolation=cv2.INTER_AREA)
test_resize2 = cv2.resize(test_img_revised, dsize=(500, 500), interpolation=cv2.INTER_AREA)

 

원본 이미지와 Flip된 이미지를 동시에 출력

: Flip된 이미지가 원본 이미지와 어떻게 다르게 적용이 되었는지를 파악하기 위해 원본 이미지도 같이 출력하는 코드를 사용하였습니다. 아래 코드는 이미지 불러와서 보여주는 코드이니 추가 설명을 하지 않도록 하겠습니다. 

 

cv2.imshow("test_img_read photo", test_resize1)
cv2.imshow("test_img_revised photo", test_resize2)

 

- 위의 코드를 실행을 시켜 보면 아래와 같이 원본 이미지와 Flip (0 이므로 X측을 대칭하였음) 된 이미지를 확인 하실 수 있습니다.

 

 

opencv 코드 종료

: 카메라 출력이 아니니 delay를 줄 필요가 없어서 아래와 같이 cv2.waitKey(0)을 선언을 하였고, 해당 window를 닫기 위해서 cv2.destroyAllWindows() 코드를 삽입하였습니다.

 

cv2.waitKey(0)
cv2.destroyAllWindows()

 

맺음말

: 오늘 포스팅은 이미지를 대칭 시키는 방법 즉, 뒤집다, Flip 한다라는 의미를 적용한 코드를 구현을 해보았습니다. 간단한 코드지만 이런 메소드를 모른다면, 정말 난감할 거 같습니다. 하나 하나 배워간다는 마음으로 포스팅하도록 하겠습니다. 이만 마무리 하도록 하겠습니다. 감샇바니다.

 

제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.


[저작권이나권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다검토  수정  삭제 조치 하도록 하겠습니다그리고기재되는 내용은 개인적으로 습득한 내용이므로 오류가 발생할  있을 가능성이 있으므로기재된 내용은 참조용으로만 봐주시길 바랍니다게시물에오류가 있을때도, Comment 달아 주시면검증 결과를 통해수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab