OpenCV 프로그래밍(acorn+PACKT 시리즈)
컴퓨터 비전 애플리케이션 구축을 위한
[OpenCV 프로그래밍]은 OpenCV를 설치하는 방법을 먼저 알려주고, 영상과 비디오/카메라 입출력, 애플리케이션 작성을 위한 사용자 인터페이스 구현을 소개하며, 기본 영상처리 기법과 분할, OpenCV 3.0의 최신 기술을 포함한 특징 추출과 특징 정합 기술, 객체 검출 기술, 비디오 처리 기반의 객체 추적 기술, 더 나아가 기계학습과 GPU 가속 기반까지 고르게 설명하면서 예제 코드 중심으로 다루는 책이다. 책은 OpenCV의 주요 기술을 구현하는 방법을 배우고 빠르게 시작하려는 C++ 개발자를 대상으로 하며, 컴퓨터 비전/영상처리를 이용한 작업 경험이 있는 독자들에게 유용할 것이다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
이 책은 OpenCV를 설치하는 방법을 먼저 알려주고, 영상과 비디오/카메라 입출력, 애플리케이션 작성을 위한 사용자 인터페이스 구현을 소개하며, 기본 영상처리 기법과 분할, OpenCV 3.0의 최신 기술을 포함한 특징 추출과 특징 정합 기술, 객체 검출 기술, 비디오 처리 기반의 객체 추적 기술, 더 나아가 기계학습과 GPU 가속 기반까지 고르게 설명하면서 예제 코드 중심으로 다룬다. 이 책에서 제공하는 예제 코드는 다양한 분야에서 추가 개발이 가능하도록 구현되어 있으므로, 각자의 프로젝트에 쉽게 적용할 수 있다.
★ 이 책에서 다루는 내용 ★
■ 레티나 알고리즘, 모핑, 컬러 이동 같은 고급 영상처리 기술 살펴보기
■ 새로운 connectionComponents와 connectedComponentsWithStats 함수 같은 고급 분할 도구를 이용한 프로그램 생성
■ 최적 분할을 얻기 위해 워터쉐드(watershed) 변환과 함께 영역 채우기 사용
■ 새롭고 강력한 KAZE 특징 살펴보기
■ BackgroundSubtractor 클래스를 이용한 고급 비디오 기반 배경/전경 분할과 ECC 기반 워핑 사용
■ 사용 가능한 객체 검출 프레임워크와 새로운 장면 텍스트 검출 기능 활용
■ 기계 학습과 GPU 최적화 같은 고급 주제 파악
★ 이 책의 대상 독자 ★
이 책은 OpenCV의 주요 기술을 구현하는 방법을 배우고 빠르게 시작하려는 C++ 개발자를 대상으로 하며, 컴퓨터 비전/영상처리를 이용한 작업 경험이 있으면 좋다.
★ 이 책의 구성 ★
1장 '시작하기'는 기본 설치 단계를 다루고, OpenCV API의 필수 개념을 소개한다. 영상과 비디오를 읽고 쓰기 위한 첫 예제와 더불어 카메라로부터 비디오를 캡처하는 예제도 제공한다.
2장 '그래픽 사용자 인터페이스'에서는 OpenCV 기반 애플리케이션을 위한 사용자 인터페이스 능력을 다룬다.
3장 '영상처리'는 OpenCV에서 활용할 수 있는 매우 유용한 영상처리 기술을 다룬다..
4장 '영상 분할'은 OpenCV에서 고려해야 할 분할의 모든 중요한 문제를 다룬다.
5장 '2D 특징'에서는 영상으로부터 특징과 기술자(descriptor)를 추출하기 위해 사용할 수 있는 함수를 다룬다.
6장 '객체 검출'에서는 컴퓨터 비전의 중심 문제인 객체 검출을 기술한다. 이 장에서는 객체 검출에 활용할 수 있는 기능을 설명한다.
7장 '모션'에서는 단일 정지 영상 이상의 내용을 고려한다. 이 장은 OpenCV에서의 모션과 추적을 다룬다.
8장 '고급 주제'는 기계 학습과 GPU 기반 가속 같은 몇몇 고급 주제에 중점을 둔다.
★ 저자 서문 ★
OpenCV는 분명히 가장 널리 사용되는 컴퓨터 비전 라이브러리이며, 학계와 산업 분야에서 광범위하게 사용되는 수백 가지 영상처리와 비전 함수를 포함한다. 카메라가 저렴해지고 영상 기능이 수요에 따라 증가함에 따라, OpenCV를 활용한 애플리케이션의 범위가 상당히 늘어나고 있으며 특히 모바일 플랫폼의 경우 더욱 그렇다.
컴퓨터 비전 라이브러리인 OpenCV는 다음과 같이 두 가지 큰 장점을 제공한다.
■ 오픈소스이며, 모든 사람이 학계 수준이나 실생활 프로젝트 중에 무료로 사용할 수 있다.
■ 가장 풍부하면서도 컴퓨터 비전 함수의 최신 모음이 담겨 있다.
OpenCV는 컴퓨터 비전, 영상처리와 비디오 처리, 기계 학습의 최첨단 연구를 제공한다.
OpenCV에 관해 처음 출간된 책에서는 대략적인 이론적 접근 방식을 제공했으며, 기본 컴퓨터 비전 기술을 설명했다. 이후에 출간된 OpenCV 책들에서는 정반대인 접근 방식을 채택해 페이지별로 따라 하기가 어려운, 규모가 큰 예제(거의 완전한 애플리케이션)를 가지고 설명을 풀어냈다. 큰 예제는 따라 하기가 어려우며 독자가 프로젝트에 쉽게 재사용할 수도 없다. 여러 페이지에 걸쳐 설명되는 예제는 책의 형태에 그다지 적합하지 않다. 예제는 이해하기 쉬워야 하고, 독자가 프로젝트를 수행할 때 예제를 돌려보는 데 필요한 시간을 줄일 수 있도록 빌딩 블록을 사용할 수 있어야 한다. 결과적으로 이 책에서 함수의 방대한 영역을 다루면서도, 좀 더 간결하되 따라 하기 쉬운 예제를 통해 실용적인 접근 방식을 취했다. 이 책에 나오는, OpenCV를 다룬 경험을 녹여낸 예제들은 가장 가치 있는 내용이라 자부한다.
★ 옮긴이의 말 ★
제가 MFC 기반의 OpenCV를 다룬 책을 처음 출간한 2007년만 해도 이 기술이 이토록 오랫동안 이어질 것이라고는 상상하지 못했습니다. 그 후부터 짧지도 길지도 않은 시간 속에 OpenCV가 학계와 산업계에서 가장 널리 사용되는 컴퓨터 비전 라이브러리로 거듭 진화하면서 국내외에서 수십 권 이상의 관련 서적이 출간됐습니다. 모든 OpenCV 책을 다 보지는 못했지만 저자의 집필 방식에 따라 이론을 기반으로 함수를 설명하는 책, 그리고 프로젝트를 중심으로 함수 사용법을 습득 혹은 병행하는 방법으로 설명하는 책, 크게 이와 같은 두 가지 형태로 나눌 수 있습니다. OpenCV가 제공하는 기능이 매우 방대해 책에 전부 담아낼 수 없고, 독자마다 원하는 내용이 다르기 때문입니다. 비록 첫술에 배부를 수 없겠지만, 학습 시간을 최대한 줄이면서 빠르게 이해하되 프로젝트에 바로 활용 가능한 지름길을 제공하는 책이 있으면 얼마나 좋을까요? 컴퓨터 비전이나 영상처리에 대한 기본 지식이 어느 정도 필요하겠지만, 어찌 보면 이것은 저자와 독자 모두의 바람일 수 있습니다.
스페인에 있는 카스티야 라 만차 대학교 비지랩스 연구실의 오스카 데니즈 수아레즈 교수와 연구원 여섯 분이 이 같은 현실을 반영하고 OpenCV와 관련된 프로젝트 수행 경험을 살려 최신 OpenCV 버전을 중심으로 다루되 실무 접근 방식으로 명쾌하게 풀어나간 책을 출간했습니다. 바로 아마존에서 좋은 평가와 더불어 찬사까지 이끌어낸 이 책 『OpenCV 프로그래밍』입니다.
이 책은 영상처리와 컴퓨터 비전에 필요한 OpenCV의 핵심 함수를 중심으로 영상과 비디오 처리부터 시작해 사용자 인터페이스 생성, 영상처리 기본 지식, 더 나아가 영상 분할, 2D 특징 추출, 학습과 객체 검출, 모션 추적, 기계학습, GPU 기반 가속까지 예제를 중심으로 점진적으로 다루며, 필요에 따라 찾아볼 수 있는 참고서로도 활용할 수 있습니다. 이 책의 특성상 어디까지나 OpenCV를 좀 더 깊게 이해하고 잘 활용하기 위한 방법을 중심으로 다루므로, 영상처리와 컴퓨터 비전 관련 이론에 대해서는 자세히 언급하지 않음을 감안하길 바랍니다. 참고로 이 책은 OpenCV 2.4.X 버전 중심이지만 로버츠 라가니에 교수의 『OpenCV 2를 활용한 컴퓨터 비전 프로그래밍』의 개정판 원서에서 다루지 않은 OpenCV 3.0의 곧 공개될 특징 추출 알고리즘 등의 내용도 설명하고 있으므로, 현재로서 이 책은 최신 OpenCV의 흐름을 잘 반영하고 있다고 생각합니다.
목차
목차
OpenCV 설정
__라이브러리 컴파일 대 미리 컴파일된 라이브러리
____CMake로 OpenCV 구성
____OpenCV 라이브러리 빌드와 설치
__OpenCV 설정을 위한 빠른 방법
API 개념과 기본 자료형
첫 프로그램: 영상과 비디오를 읽고 쓰기
__qmake 프로젝트 파일
비디오 파일을 읽은 후 재생
카메라로부터 실시간 입력
요약
2장 그래픽 사용자 인터페이스
OpenCV의 highgui 모듈 사용
텍스트와 그리기
영역 선택
Qt 기반 함수 사용
__텍스트 오버레이와 상태 바
__속성 대화상자
__창 속성
__Qt 영상
요약
3장 영상처리
화소 수준 접근과 범용 연산
영상 히스토그램
히스토그램 평활화
밝기와 명암대비 모델링
히스토그램 정합과 LUT
RGB를 다른 컬러 공간으로 변환
레티나 모델로 필터링
산술 변환과 기하학적 변환
__산술 변환
__기하학적 변환
요약
참고사항
4장 영상 분할
경계화
외곽선과 연결 성분
영역 채우기
워터쉐드 분할
그랩컷
요약
참고사항
5장 2D 특징
관심점
특징 검출기
__FAST 검출기
__SURF 검출기
__ORB 검출기
__KAZA 검출기와 AKAZE 검출기
특징 기술자 추출기
기술자 정합기
__SURF 기술자 정합
__AZKAE 기술자 정합
요약
참고사항
6장 객체 검출
객체 검출
OpenCV로 객체 검출
캐스케이드는 아름답다
__캐스케이드를 이용한 객체 검출
__자신만의 캐스케이드 학습
라텐트 SVM
장면 텍스트 검출
요약
참고사항
7장 모션
모션 역사
비디오 시퀀스 읽기
루카스-카나데 옵티컬 플로우
구나-파르네백 옵티컬 플로우
평균이동 추적기
캠시프트 추적기
모션 템플릿
__모션 히스토리 템플릿
__모션 기울기
배경 차분 기술
영상 정렬
요약
참고사항
8장 고급 주제
기계 학습
KNN 분류기
랜덤 포레스트 분류기
분류를 위한 SVM
GPU는 어떤가?
CUDA를 지원하는 OpenCV 설정
__OpenCV 빌드 구성
__라이브러리 빌드 및 설치
__CUDA를 지원하는 OpenCV 설정을 위한 빠른 예제
첫 GPU 기반 프로그램
실시간으로 가자
__성능
요약
참고사항
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

