OpenCV는 영상처리를 공부하려는 거의 모든 이들이 필수적으로 학습해야 하는 내용이다. 그런데, C++ 프로그램밍과 OpenCV를 동시에 배울 수 있는 교재가 시중에 부족하다. 본 저자는 영상처리 입문을 위해서 C++과 OpenCV를 학생들에게 방학 중 단기 캠프를 이용하여 여러 차례 강의하고 코딩 실습을 지도한 바가 있다. 그때마다 이에 적절한 실습 교재가 부족하여 그때마다 간단한 별도 교재를 만들어 제공하곤 하였는데 이번에 이러한 내용을 책 한권에 담을 수 있게 되어 다행이다. 이 책에서는 이 두가지 학습을 한권으로 할 수 있도록 기획되고 편찬되었다. 다만, 이 책은 초보자를 대상으로 하였기에 세그멘테이션, 특징점 추출, 영상 인식, 머신러닝 등을 이용한 영상 처리의 고급 주제들에 대해서는 다루지 않았다. 참고로 python을 최근 많이 활용하여 openCV 프로그래밍도 하는 추세이긴 하지만 효율성과 기존 시스템과의 호환성 등을 이유로 여전히 C++ 프로그래밍에 대한 수요가 존재하고 오히려 C++로 영상처
리를 제대로 구현하는 개발자들에 대한 산업계의 구인 요구가 여전하여 이 책은 C++ 을 기준으로 OpenCV를 소개하고자 한다.
이 책의 장점 및 특징은 다음과 같다.
• C++ 문법과 OpenCV 및 영상처리 기초 이해를 한권에 담았다.
• openCV 초보 학습자를 대상으로 하였다.
• C에 대한 핵심 내용 복습을 담아서 C++을 학습할 때 필요한 기초를 제공한다.
• OpenCV 예제 코드를 주제별로 충분히 제공하고자 하였다.
• 차선인식을 프로젝트 예시 코드를 제공하고 있어 실전 프로그래밍에 도움이 된다.
1부 C++ 코딩 준비
CHAPTER 01 Microsoft Visual Studio 무작정 따라하기
CHAPTER 02 C 프로그래밍 핵심 복습
2부 C보다 더 편한 언어로서의 C++
CHAPTER 01 가독성 높이기: 변수, 상수, 타입의 선언 위치
CHAPTER 02 상수에도 타입 구분: const 선언
CHAPTER 03 소스코드 타이핑을 편하게6
CHAPTER 04 새로운 입출력 방식: cin, cout
CHAPTER 05 새로운 타입
CHAPTER 06 scope resolution operator 및 namespace
CHAPTER 07 포인터의 불편함 해소: reference(참조자)
CHAPTER 08 매크로의 모호성 해결: inline function
CHAPTER 09 인자가 많은 함수 호출의 불편함 해결: default function arguments
CHAPTER 10 같은 이름을 가진 다른 타입의 함수 정의: function overloading
CHAPTER 11 엄격해진 함수 및 변수의 타입 구분
CHAPTER 12 사용자가 정하는 연산자: operator overloading
CHAPTER 13 새로운 동적 메모리 관리: new, delete
3부 객체지향 언어로서의 C++
CHAPTER 01 객체지향 프로그램의 개념: 클래스 vs. 객체
CHAPTER 02 클래스 멤버 정의하기
CHAPTER 03 추상화 및 encapsulation
CHAPTER 04 생성자와 소멸자
CHAPTER 05 복사 생성자
CHAPTER 06 클래스 operator overloading
CHAPTER 07 상속
CHAPTER 08 멤버 함수 Overriding
CHAPTER 09 가상 함수
CHAPTER 10 다중 상속
CHAPTER 11 다형성(polymorphism)
4부 고급 C++ 기능
CHAPTER 01 정적 멤버(static member)
CHAPTER 02 프랜드(friend) 클래스 및 함수
CHAPTER 03 템플릿(template)
CHAPTER 04 예외 처리(exception)
5부 OpenCV를 이용한 영상처리 기초
CHAPTER 01 OpenCV 설치 및 환경설정
CHAPTER 02 Mat 클래스 이해하기
CHAPTER 03 subwindow 및 이미지 크기 변환
CHAPTER 04 컬러공간 변환 및 채널 분리
CHAPTER 05 영상 파일 입출력
CHAPTER 06 도형 및 텍스트 그리기
CHAPTER 07 간단한 영상 변환
CHAPTER 08 노이즈 제거
CHAPTER 09 이진화 및 thresholding
CHAPTER 10 에지 추출
CHAPTER 11 직선 추출
CHAPTER 12 외곽선 추출
CHAPTER 13 모폴로지(Morphology) 변환
CHAPTER 14 영상처리 예제 프로젝트: 차선 인식