[VB.NET] 차근차근 OpenCVSharp 강좌 - 3. 이미지 대칭

2023. 1. 14. 10:55VB.NET/OpenCVSharp

이번 강좌부터는 소스를 먼저 작성해서 결과를 확인한 후에 설명을 해보자. 이전강좌를 정확히 이해했다면 큰 어려움 없이 하나씩 이미지 효과를 변경할 수 있을 것이다.

메인폼의 Gray 버튼 옆에 버튼을 하나 추가하자. - Name : ButtonFlip, Text : Flip

버튼 클릭 이벤트에 아래 소스 추가

Private Sub ButtonFlip_Click(sender As Object, e As EventArgs) Handles ButtonFlip.Click
   Dim org As New Mat("D:\test\chipmunk.jpg", ImreadModes.Color)
   Dim dst As New Mat
   Cv2.Flip(org, dst, FlipMode.XY)
   PictureBoxOrg.Image = org.ToBitmap : PictureBoxDst.Image = dst.ToBitmap
End Sub

프로젝트 실행후 Flip 버튼을 누르면 아래 화면과 같이 결과가 나와야 성공

OpenCVSharp - 이미지 대칭

Line 1 : Dim org As New Mat("D:\test\chipmunk.jpg", ImreadModes.Color)

이전 강좌와 동일하게 원본 이미지를 org 매트릭스에 넣는다.

Line 2 : Dim dst As New Mat

대상 이미지를 생성한다. 대칭된 결과이미지가 dst에 들어가게 된다.

Line 3 : Cv2.Flip(org, dst, FlipMode.XY)

또 나왔다. Cv2 클래스. 앞으로 주구장창 나올거다. 이번에는 대칭이니 Flip 함수를 사용했다. 대칭은 가로, 세로, 대각선 모두 지원한다.

가로 대칭은 세번째 파라미터인 코드가 FlipMode.Y, 세로 대칭은 FlipMode.X, 대각선(가로 세로 모두 대칭)은 FlipMode.XY로 쓰면 된다. 엥? 가로대칭이 X이고 세로대칭이 Y여야 되지 않나? 싶지만...

아무래도 코드는 기준축을 의미하는듯 싶으니 헷갈리지 말자.

궁금하니 한번씩 해보고 아래 화면처럼 가로대칭과 세로대칭이 제대로 동작하는지 확인해보자.

OpenCVSharp - 가로대칭
OpenCVSharp - 세로대칭

이제 Gray, Flip 두개를 작성해봤으니 OpenCVSharp의 사용법은 어느정도 감이 왔을 것이다. 이제부터는 과연 어떤 효과를 지원하는지가 관건이 되는 시점이다. 나아가서 내가 원하는 효과를 OpenCVSharp이 지원하는지도 확인해봐야하니 하나씩 하나씩 차근차근 강좌를 따라해 보도록 하자.

소스가 간단하기 때문에 C#, 파이썬, C++ 등 다른 언어로 작성된 예제도 손쉽게 VB.NET으로 변환이 가능하다. 웬지 모든 개발언어들이 점점 단일 언어로 통일돼 가는 느낌적인 느낌이다.

반응형