2021. 8. 27. 00:18 자기개발/OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝
1장 컴퓨터 비전과 영상의 이해, 2장 OpenCV 설치와 기초 사용법
1장 컴퓨터 비전과 영상의 이해
1.1 컴퓨터 비전 개요
컴퓨터 비전 : 사람의 뇌가 하는 작업을 수학적 알고리즘을 통해 컴퓨터가 유사하게 수행할 수 있도록 만드는 작업

필요지식 :
- 고등학교 이상의 수학적 지식
- 특히 행렬과 미분에 대한 개념은 필수
- OpenCV 라이브러리가 C++ 언어로 구현되었기 때문에 C++ 문법에 대한 충분한 이해도 필요
- 클래스와 상속 관계, STL, 그리고 최신 C++ 문법인 C++11/14/17에 대한 지식도 어느 정도 필요
1.2 영상의 구조와 표현 방법
1.2.1 영상의 획득과 표현 방법

밑에 그림에 표시한 영상은 가로 크기가 w이고, 세로 크기가 h인 영상입니다. 이 영상의 픽셀 좌표를 (x, y)로 표현할 경우, x는 0부터 w−1 사이의 정수를 가질 수 있고, y는 0부터 h−1 사이의 정수를 가질 수 있습니다. 이처럼 좌표의 시작을 0부터 표현하는 방식을 0-기반(zero-based) 표현이라고 부르며, 보통 컴퓨터에서 많이 사용하는 방식입니다.

1.2.2 그레이스케일 영상과 컬러 영상
그레이스케일 영상은 밝기 정보를 256단계로 구분하여 표현합니다. 즉, 그레이스케일 영상에서 하나의 픽셀은 0부터 255 사이의 정수 값을 가질 수 있으며, 0은 가장 어두운 검은색을 표현하고 255는 가장 밝은 흰색을 표현합니다. 그레이스케일 값을 저장하기 위하여 C/C++에서는 보통 unsigned char 자료형을 사용합니다. unsigned char 자료형은 1바이트(byte)의 크기를 가지며 부호 없는 8비트(bit) 정수 값을 저장할 수 있습니다.
트루컬러 영상은 보통 R, G, B 세 개의 색상 성분 조합으로 픽셀 값을 표현합니다. 여기서 R은 빨간색(red), G는 녹색(green), B는 파란색(blue)을 나타냅니다. 각각의 색상 성분은 0부터 255 사이의 정수 값으로 표현되며, 0은 해당 색상 성분이 전혀 없음을 의미하고 255는 해당 색상 성분이 가득 차 있음을 의미합니다. 트루컬러 영상에서 하나의 픽셀은 unsigned char 자료형 세 개를 이용하여 표현할 수 있습니다.
2장 OpenCV 설치와 기초 사용법
2.1 OpenCV 개요와 설치
2.1.1 OpenCV 개요
OpenCV의 공식 웹 사이트 주소는 https://opencv.org/ 이고,이곳에서 OpenCV 라이브러리 설치 파일 및 소스 파일을 내려받을 수 있습니다.

OpenCV 모듈

OpenCV 관련 사이트
OpenCV 공식 사이트 주소 : https://opencv.org/
OpenCV 문서 사이트 주소 : https://docs.opencv.org/
OpenCV 질문/답변 포럼 주소 : http://answers.opencv.org/questions/
OpenCV 기본 소스 저장소 주소 : https://github.com/opencv/opencv/
OpenCV 추가 모듈 소스 저장소 주소 : https://github.com/opencv/opencv_contrib/
2.2.3 HelloCV에서 사용된 OpenCV 주요 함수 설명

- imread() : filename 영상 파일을 불러와 Mat 객체로 변환하여 반환

- imwrite() : img 변수에 저장되어 있는 영상 데이터를 filename 이름의 파일로 저장

- namedWindow() : 두 개의 인자로 구성되어 있지만, 두 번째 인자는 기본 인자가 있으므로 winname 문자열 하나만 지정하여 사용할 수 있습니다. 원래 Windows 운영 체제에서는 각각의 창을 구분하기 위해 핸들(handle)이라는 숫자 값을 사용하지만, OpenCV에서는 각각의 창에 고유한 문자열을 부여하여 각각의 창을 구분합니다.

- imshow() : winname 창에 mat 인자로 전달된 영상 데이터를 출력

- waitKey() : delay에 해당하는 밀리초 시간 동안 키 입력을 기다립니다.
※그림 출처는 "OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝" 책에 있는 것을 사용 하였습니다.
'자기개발 > OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝' 카테고리의 다른 글
| 7장 필터링 (0) | 2021.09.23 |
|---|---|
| 6장 영상의 산술 및 논리 연산 (0) | 2021.09.12 |
| 5장 영상의 밝기와 명암비 조절 (0) | 2021.09.12 |
| 4장 OpenCV 주요 기능 (0) | 2021.09.06 |
| 3장 OpenCV 주요 클래스 (0) | 2021.09.05 |