2017-05-12 16:55:28

당분간 http://opencvexamples.blogspot.com/p/learning-opencv-functions-step-by-step.html에 있는 초보자들을 위한 예제들을 따라하면서 opencv를 공부하려고 합니다. 총 13개의 예제로 구성되어 있습니다. 참고로 영문사이트입니다. 오늘은 첫번째 예제를 공부해보겠습니다. :D

 

1. Load, Display and Save an image

 

첫번째 예제는 이미지를 불러와서 전시하고 저장하는 방법을 담고 있습니다. 우선 코드를 아래에 첨부하겠습니다. 저는 opencv 3.2.0 버전과 visual studio 2017을 사용했습니다.

 

main.cpp
다운로드

 

여기서 주요한 함수들을 살펴보겠습니다.

 

먼저 imread는 이미지를 불러오는 함수입니다. 저는 tsuL.png를 불러왔습니다. image = imread("tsuL.png", CV_LOAD_IMAGE_COLOR)에서 CV_LOAD_IMAGE_COLOR는 이미지를 컬러로 불러와서 image변수에 대입하겠다는 뜻입니다. 이 자리에 쓰일 수 있는 것은 4가지가 있습니다.

 

CV_LOAD_IMAGE_ANYDEPTH - return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.

CV_LOAD_IMAGE_COLOR (>0) - If set, always convert image to the color one.

CV_LOAD_IMAGE_GRAYSCALE (0) - If set, always convert image to the grayscale one.

CV_LOAD_IMAGE_UNCHANGED (<0) - loads the image as is (including the alpha channel if present)

 

CV_LOAD_IMAGE_GRAYSCALE은 그레이영상으로 이미지를 변환해서 불러온다는 것이고, CV_LOAD_IMAGE_UNCHANGED는 있는 그대로 불러온다는 의미인 것 같습니다. CV_LOAD_IMAGE_ANYDEPTH는 잘 모르겠네요.. ㅎㅎ (아시는 분 계시면 댓글 부탁드립니다!)

 

imshow는 이미지를 전시해주는 함수입니다. imshow("window", image)에서 "window"라고 쓰여진 이 부분은 사진을 전시해주는 창의 이름을 의미합니다. 코드 실행결과 아래와 같은 이미지가 전시됩니다. 만약에 imshow("test_image", image)라고 코딩했다면 아래 출력된 이미지에서 창의 이름이 test_image가 되었을 것입니다.

 

imwrite는 이미지를 저장해주는 함수입니다. imwrite("result.jpg", image)는 이미지를 result.jpg로 저장해준다는 것입니다. 폴더를 보면 result.jpg가 생성되었음을 확인할 수 있습니다.