서브메뉴

본문

OpenCV로 배우는 영상 처리 및 응용
OpenCV로 배우는 영상 처리 및 응용
저자 : 정성환|배종욱
출판사 : 생능출판사
출판년 : 2017
정가 : 35000, ISBN : 9788970508948

책소개


OpenCV로 배우는 영상 처리의 기본 이론과 응용 방법

OpenCV(Open Source Computer Vision Library)는 영상 처리와 컴퓨터 비전 관련 오픈 소스 라이브러리이다. 오픈소스 라이브러리로 공개되어 있으므로 누구나 사용할 수 있다. 그리고 영상 처리와 관련된 많은 함수가 이미 구현되어 있어서, 영상 처리 이론을 쉽게 구현해 볼 수 있다.

이 책은 영상 처리의 기본적인 이론의 소개와 OpenCV를 사용한 그 이론의 구현으로 구성되어 있다. 비유를 든다면 한 손은 설계도면 정보가, 다른 한 손은 연장이 주어진 학습자의 멋진 환경과 같다고 볼 수 있다. 독자들은 이 책을 따라 영상 처리 이론을 알아가면서, OpenCV 라이브러리라는 연장을 가지고 직접 그 이론을 쉽게 구현하여 실제 영상 처리를 경험해 볼 수 있다.

영상 처리 개요 및 OpenCV의 기본에 관한 소개, 영상 처리와 OpenCV 함수 활용, 영상 처리 응용 사례 등을 단계적으로 학습하면서 영상 처리 이론뿐만 아니라 OpenCV의 영상 처리 관련 함수의 이해와 사용법까지 익힐 수 있다.

목차


PART 01 영상 처리 개요 및 OpenCV 소개

CHAPTER 01 영상 처리 개요
1.1 영상 처리란?
1.2 영상 처리의 수준
1.3 영상 처리의 역사
1.4 영상 처리 관련 분야
1.5 영상의 형성 과정
1.6 디지털 영상의 표현과 영상 처리
1.7 영상 처리 응용 분야
단원 요약
연습문제

CHAPTER 02 OpenCV 개요
2.1 OpenCV 소개
2.2 설치 및 기본 환경 설정
2.2.1 OpenCV 내려받기 및 압축 풀기
2.2.2 Path 환경 변수에 경로 추가
2.3 비주얼 스튜디오에서 OpenCV 디렉터리 설정하기
2.3.1 솔루션 및 프로젝트 만들기
2.3.2 OpenCV 디렉터리 설정
2.4 간단한 OpenCV API 사용하기
단원 요약
연습문제

CHAPTER 03 OpenCV의 기본 자료 구조
3.1 기본 템플릿 클래스
3.1.1 Point_ 클래스
3.1.2 Point3_ 클래스
3.1.3 Size_ 클래스
3.1.4 Rect_ 클래스
3.1.5 Vec 클래스
3.1.6 Scalar_ 클래스
3.1.7 RotatedRect 클래스
3.2 Mat 클래스
3.2.1 Mat 행렬 생성
3.2.2 Mat 행렬 초기화 함수
3.2.3 Mat_ 클래스를 이용한 초기화
3.2.4 Matx 클래스를 이용한 초기화
3.2.5 Mat 클래스의 다양한 속성
3.2.6 Mat 클래스의 = 연산자
3.2.7 Mat 클래스의 크기 및 형태 변경
3.2.8 Mat 복사 및 자료형 변환
3.3 벡터(std::vector) 클래스
3.3.1 vector 클래스의 초기화
3.3.2 vector 클래스의 사용
3.4 Mat 클래스의 영역 참조(관심영역)
3.4.1 Range 클래스
3.4.2 행렬 헤더 관련 함수
3.5 Mat 클래스의 기타 메서드
3.5.1 원소의 추가 및 삭제( Mat::push_back(), Mat::pop_back() )
3.5.2 행렬의 메모리 해제
3.5.3 행렬 연산 함수
3.6 예외처리
3.6.1. saturate_cast 〈_Tp〉
3.6.2 예외 처리 매크로
단원 요약
연습문제

CHAPTER 04 OpenCV 인터페이스 기초 / 사용자 인터페이스 및 I/O 처리
4.1 윈도우 창 제어
4.2 이벤트 처리 함수
4.2.1 키보드 이벤트 제어
4.2.2 마우스 이벤트 제어
4.2.3 트랙바 이벤트 제어
4.3 그리기 함수
4.3.1 직선 및 사각형 그리기
4.3.2 글자 쓰기
4.3.3 원 그리기
4.3.4 타원 그리기
4.4 이미지 파일 처리
4.4.1 이미지 파일 읽기
4.4.2 행렬을 영상 파일로 저장
4.5 비디오 처리
4.5.1 카메라에서 프레임 읽기
4.5.2 카메라 속성 설정하기
4.5.3 카메라 프레임 동영상 파일 저장
4.5.4 비디오 파일 읽기
4.6 데이터의 파일 저장 및 읽기
4.6.1 FileStorage 클래스
4.6.2 FileNode 클래스
4.6.3 XML/YAML 파일 저장
4.6.4 XML/YAML 파일 읽기
단원 요약
연습문제

CHAPTER 05 기본 행렬 연산(Operations on Arrays) 함수
5.1 기본 배열(Array) 처리 함수
5.2 채널 처리 함수
5.3 산술 연산 함수
5.3.1 사칙 연산
5.3.2 지수 로그 루트 관련 함수
5.3.3 논리(비트) 연산 함수
5.4 절댓값, 최댓값, 최솟값 관련 함수
5.4.1 원소의 절댓값
5.4.2 원소의 최솟값과 최댓값
5.5 통계 관련 함수
5.6 행렬 연산 함수
단원 요약
연습문제

PART 02 영상 처리와 OpenCV 함수 활용

CHAPTER 06 화소 처리
6.1 영상 화소의 접근
6.1.1 Mat::at() 함수
6.1.2 Mat::ptr() 함수
6.1.3 반복자를 통한 조회
6.2 화소 밝기 변환
6.2.1 그레이 스케일 영상
6.2.2 영상의 화소 표현
6.2.3 영상 밝기의 가감 연산
6.2.4 행렬 덧셈 및 곱셈을 이용한 영상 합성
6.2.5 명암 대비
6.3 히스토그램
6.3.1 히스토그램 개념
6.3.2 히스토그램 계산
6.3.3 OpenCV 함수 활용
6.3.4 히스토그램 스트레칭
6.3.5 히스토그램 평활화
6.4 컬러 공간 변환
6.4.1 컬러 및 컬러 공간
6.4.2 RGB 컬러 공간
6.4.3 CMY(K) 컬러 공간
6.4.4 HSI 컬러 공간
6.4.5 기타 컬러 공간
단원 요약
연습문제

CHAPTER 07 영역 처리
7.1 회선(convolution)
7.1.1 공간 영역의 개념과 회선
7.1.2 블러링
7.1.3 샤프닝
7.2 에지 검출
7.2.1 차분 연산을 통한 에지 검출
7.2.2 1차 미분 마스크
7.2.4 2차 미분 마스크
7.2.5 캐니 에지 검출
7.3 기타 필터링
7.3.1 최댓값/최솟값 필터링
7.3.2 평균값 필터링
7.3.3 미디언 필터링
7.3.4 가우시안 스무딩 필터링
7.4 모폴로지(morphology)
7.4.1 침식 연산
7.4.2 팽창 연산
7.4.3 열림 연산과 닫힘 연산
단원 요약
연습문제

CHAPTER 08 기하학 처리
8.1 사상
8.2 크기 변경 (확대/축소)
8.3 보간
8.3.1 최근접 이웃 보간법
8.3.2 양선형 보간법
8.4 평행이동
8.5 회전
8.6 행렬 연산을 통한 기하학 변환 - 어파인 변환
8.7 원근 투시(투영) 변환
단원 요약
연습문제

CHAPTER 09 변환영역 처리
9.1 공간 주파수의 이해
9.2 이산 푸리에 변환
9.3 고속 푸리에 변환
9.4 FFT를 이용한 주파수 영역 필터링
9.4.1 주파수 영역 필터링의 과정
9.4.2 저주파 및 고주파 통과 필터링
9.4.3 버터워스, 가우시안 필터링
9.5 이산 코사인 변환
단원 요약
연습문제

CHAPTER 10 영상 분할 및 특징 처리
10.1 허프 변환
10.1.1 허프 변환의 좌표계
10.1.2 허프 변환의 전체 과정
10.1.3 허프 누적 행렬 구성
10.1.4 허프 누적 행렬의 지역 최대값 선정
10.1.5 임계값 이상인 누적값(직선) 선별
10.1.6 직선을 누적값 기준으로 내림차순 정렬
10.1.7 최종 완성 프로그램
10.1.8 멀티 하네스의 전처리
10.2 코너 검출
10.3 k-최근접 이웃 분류기
10.3.1 k-최근접 이웃 분류기의 이해
10.3.2 k-NN을 위한 KNearest 클래스의 이해
10.3.3 k-NN 응용
10.4 영상 워핑과 영상 모핑
단원 요약
연습문제

PART 03 영상 처리 응용 사례

CHAPTER 11 영상 처리 응용 사례 Ⅰ
11.1 그림판 프로그램
11.1.1 아이콘 배치 및 팔레트 생성
11.1.2 마우스 이벤트의 구현
11.1.3 팔레트 색상 변경 이벤트
11.1.4 그리기 구현
11.1.5 기타 명령 구현
11.2 2차원 히스토그램을 이용한 이미지 검색
11.2.1 2차원 히스토그램
11.2.2 검색 대상 영상 히스토그램 계산 및 저장
11.2.3 유사도 비교
11.2.3 비교 결과 영상 출력
11.2.4 전체 프로그램
11.3 하르 분류기를 이용한 얼굴검출 및 성별 분류
11.3.1 하르 기반 분류기
11.3.2 얼굴 검출 프로그램 구현
11.3.3 성별 분류 기초
11.3.4 얼굴 기울기 계산 및 보정
11.3.5 입술 영역 및 머리 영역 검출
11.3.6 히스토그램 비교
11.3.7 성별 분류
단원 요약
연습문제

CHAPTER 12 영상 처리 응용 사례 II
12.1 동전 인식 프로그램
12.1.1 동전 영상 캡쳐 및 전처리
12.1.2 모든 동전 객체 검출
12.1.3 개별 동전 영상 생성
12.1.4 색상 히스토그램 계산
12.1.5 동전 그룹 분류
12.1.6 개별 동전 종류 결정
12.1.6 모든 동전 금액 계산 및 출력
12.1.7 최종 동전 계산 프로그램
12.2 SVM을 이용한 차량 번호 검출 프로그램
12.2.1 SVM의 개념
12.2.2 번호판 검출 프로그램 전체 처리 과정
12.2.3 번호판 영상 학습
12.2.4 번호판 후보영역 검색
12.2.5 번호판 후보영역 영상 생성
12.2.6 후보 영상의 번호판 반별
12.3 k-NN을 이용한 차량 번호 인식
12.3.1 번호판 문자 인식 프로그램 전체 처리 과정
12.3.2 숫자 및 문자 영상의 학습
12.3.2 번호판 영상 전처리
12.3.3 숫자 및 문자 객체 검색
12.3.4 검출 객체 위치 정렬 및 개별 숫자(문자) 영상 생성
12.3.5 검출 객체 영상의 숫자 및 문자 인식
단원 요약
연습문제