OpenCV 2 Computer Vision Application Programming Cookbook 한국어판 [OpenCV 2를 활용한 컴퓨터 비전 프로그래밍]
- 원서명OpenCV 2 Computer Vision Application Programming Cookbook (ISBN 9781849513241)
- 지은이로버트 라가니에
- 옮긴이이문호
- ISBN : 9788960772946
- 30,000원
- 2012년 04월 10일 펴냄 (절판)
- 페이퍼백 | 372쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 오픈소스 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
C++ 인터페이스 기반 OpenCV 2 라이브러리의 최신 내용을 담은 책이다. 딱딱한 영상처리와 컴퓨터 비전 이론 중 중요한 알고리즘을 선정해, 초보자도 쉽게 읽으며 객체지향 프로그래밍으로 구현한 예제를 함께 배울 수 있도록 구성했다. 또한 C++로 효율적으로 구현하는 방법이 구현된 프레임워크를 제공하므로, 독자가 마음껏 수정해 자신만의 애플리케이션을 개발할 수 있다.
이 책에 실린 이미지 소스 다운로드>>
http://www.laganiere.name/opencvCookbook/img/cookbook_images.zip
[ 소개 ]
기초부터 고급 기술까지, OpenCV 2 라이브러리의 C++ 인터페이스를 이용한 컴퓨터 비전 프로그래밍 가이드북
『OpenCV 2 Computer Vision Application Programming Cookbook 한국어판』은 OpenCV 라이브러리에 있는 수많은 컴퓨터 비전 알고리즘을 소개하며, 영상을 읽고, 쓰고, 생성하고 다룰 수 있는 방법을 배운다. 일반적으로 영상 분석에 사용하는 다양한 기술과 C++로 효율적으로 구현할 수 있는 방법을 살펴본다.
[ 이 책에서 다루는 내용 ]
■ 올바른 객체지향 프로그래밍 실습을 통한 고급 컴퓨터 비전 애플리케이션 만들기
■ 화소별로 처리하기 위한 영상 조회
■ 영상이나 관심 영역을 히스토그램으로 개선
■ 수학적 형태학 사용과 변환 영상 필터링, 영상 분할
■ 묘사 장면의 다른 시점을 매칭하기 위한 영상 기하학 활용
■ 비디오 시퀀스 읽고 쓰기
■ 특징점 추적과 움직이는 객체를 식별하기 위한 비디오 프레임 처리
■ 관심 점, 선, 외곽선, 영상 내 포함하는 객체 감지
[ 이 책의 대상 독자 ]
컴퓨터 비전 애플리케이션을 구축하기 위해 OpenCV 라이브러리의 사용 방법을 배우고 싶은 C++ 프로그래머 초보에게 적합한 책이다. 또한 컴퓨터 비전 프로그래밍 개념을 알기 원하는 전문 소프트웨어 개발자에게도 안성맞춤이다. 학부 수준 컴퓨터 비전 코스에서 교재로 사용할 수 있으며, 영상처리와 컴퓨터 비전 분야의 석사 과정과 연구자에겐 최고의 참고서다. 이 책은 기본에서 고급 예제까지의 훌륭한 조합을 제공한다. 단, 이 책을 읽으려면 기본적인 C++ 지식은 알고 있어야 한다.
[ 이 책의 구성 ]
1장, 영상처리 준비: OpenCV 라이브러리를 소개하고, 마이크로소프트 비주얼 C++와 Qt 개발 환경을 이용해 간단한 애플리케이션을 실행하는 방법을 보여준다.
2장, 화소 다루기: 영상을 읽을 수 있는 방법을 설명한다. 화소별로 작업을 수행하기 위해 영상을 조회하는 여러 가지 방법을 기술한다. 또한 영상 내의 관심 영역을 정의하는 법을 배운다.
3장, 영상처리 클래스 구현: 훨씬 나은 컴퓨터 애플리케이션을 구축하는 데 도움이 될 여러 가지 객체지향 디자인 패턴을 적용한 예제로 구성한다.
4장, 히스토그램을 이용한 화소 개수 세기: 영상 히스토그램을 계산하는 방법과 영상을 수정하는 데 사용할 수 있는 방법을 보여준다. 히스토그램에 기반을 두되 영상 분할, 객체 감지, 영상 검색을 위한 애플리케이션을 제시한다.
5장, 형태학 연산을 이용한 영상 변환: 수학적 형태학의 개념을 살펴본다. 여러 연산자를 제시하고, 영상 내의 에지, 코너, 분할을 감지하는 데 사용할 수 있다.
6장, 영상 필터링: 주파수 분석과 영상 필터링의 원리를 알려준다. 저주파와 고주파 필터를 영상에 어떻게 적용하는지 보여준다. 두 영상 미분 연산자인 기울기와 라플라시안(Laplacian)을 제시한다.
7장, 선, 외곽선, 컴포넌트 추출: 기하 영상의 특징 감지에 초점을 맞춘다. 영상 내의 외곽선, 선, 연결 컴포넌트를 추출하는 방법을 설명한다.
8장, 관심점 감지와 매칭: 영상 내의 여러 가지 특징점 감지기를 기술한다. 또한 관심점(interest point) 기술자를 계산하고, 영상 간의 점을 매칭하는 데 사용하는 방법을 설명한다.
9장, 영상 내 투영 관계 추정: 영상 정보 안에 포함된 여러 관계를 분석한다. 또한 동일한 장면을 갖는 두 영상 간에 존재하는 투영 관계를 살펴본다.
10장, 비디오 시퀀스 처리: 비디오 시퀀스를 읽고 저장하고 각 프레임을 처리하기 위한 프레임워크를 제공한다. 또한 프레임에서 다음 프레임의 특징점 추적, 카메라 앞에서 움직이는 전경 객체를 추출하는 방법을 보여준다.
이 책에 실린 이미지 소스 다운로드>>
http://www.laganiere.name/opencvCookbook/img/cookbook_images.zip
[ 소개 ]
기초부터 고급 기술까지, OpenCV 2 라이브러리의 C++ 인터페이스를 이용한 컴퓨터 비전 프로그래밍 가이드북
『OpenCV 2 Computer Vision Application Programming Cookbook 한국어판』은 OpenCV 라이브러리에 있는 수많은 컴퓨터 비전 알고리즘을 소개하며, 영상을 읽고, 쓰고, 생성하고 다룰 수 있는 방법을 배운다. 일반적으로 영상 분석에 사용하는 다양한 기술과 C++로 효율적으로 구현할 수 있는 방법을 살펴본다.
[ 이 책에서 다루는 내용 ]
■ 올바른 객체지향 프로그래밍 실습을 통한 고급 컴퓨터 비전 애플리케이션 만들기
■ 화소별로 처리하기 위한 영상 조회
■ 영상이나 관심 영역을 히스토그램으로 개선
■ 수학적 형태학 사용과 변환 영상 필터링, 영상 분할
■ 묘사 장면의 다른 시점을 매칭하기 위한 영상 기하학 활용
■ 비디오 시퀀스 읽고 쓰기
■ 특징점 추적과 움직이는 객체를 식별하기 위한 비디오 프레임 처리
■ 관심 점, 선, 외곽선, 영상 내 포함하는 객체 감지
[ 이 책의 대상 독자 ]
컴퓨터 비전 애플리케이션을 구축하기 위해 OpenCV 라이브러리의 사용 방법을 배우고 싶은 C++ 프로그래머 초보에게 적합한 책이다. 또한 컴퓨터 비전 프로그래밍 개념을 알기 원하는 전문 소프트웨어 개발자에게도 안성맞춤이다. 학부 수준 컴퓨터 비전 코스에서 교재로 사용할 수 있으며, 영상처리와 컴퓨터 비전 분야의 석사 과정과 연구자에겐 최고의 참고서다. 이 책은 기본에서 고급 예제까지의 훌륭한 조합을 제공한다. 단, 이 책을 읽으려면 기본적인 C++ 지식은 알고 있어야 한다.
[ 이 책의 구성 ]
1장, 영상처리 준비: OpenCV 라이브러리를 소개하고, 마이크로소프트 비주얼 C++와 Qt 개발 환경을 이용해 간단한 애플리케이션을 실행하는 방법을 보여준다.
2장, 화소 다루기: 영상을 읽을 수 있는 방법을 설명한다. 화소별로 작업을 수행하기 위해 영상을 조회하는 여러 가지 방법을 기술한다. 또한 영상 내의 관심 영역을 정의하는 법을 배운다.
3장, 영상처리 클래스 구현: 훨씬 나은 컴퓨터 애플리케이션을 구축하는 데 도움이 될 여러 가지 객체지향 디자인 패턴을 적용한 예제로 구성한다.
4장, 히스토그램을 이용한 화소 개수 세기: 영상 히스토그램을 계산하는 방법과 영상을 수정하는 데 사용할 수 있는 방법을 보여준다. 히스토그램에 기반을 두되 영상 분할, 객체 감지, 영상 검색을 위한 애플리케이션을 제시한다.
5장, 형태학 연산을 이용한 영상 변환: 수학적 형태학의 개념을 살펴본다. 여러 연산자를 제시하고, 영상 내의 에지, 코너, 분할을 감지하는 데 사용할 수 있다.
6장, 영상 필터링: 주파수 분석과 영상 필터링의 원리를 알려준다. 저주파와 고주파 필터를 영상에 어떻게 적용하는지 보여준다. 두 영상 미분 연산자인 기울기와 라플라시안(Laplacian)을 제시한다.
7장, 선, 외곽선, 컴포넌트 추출: 기하 영상의 특징 감지에 초점을 맞춘다. 영상 내의 외곽선, 선, 연결 컴포넌트를 추출하는 방법을 설명한다.
8장, 관심점 감지와 매칭: 영상 내의 여러 가지 특징점 감지기를 기술한다. 또한 관심점(interest point) 기술자를 계산하고, 영상 간의 점을 매칭하는 데 사용하는 방법을 설명한다.
9장, 영상 내 투영 관계 추정: 영상 정보 안에 포함된 여러 관계를 분석한다. 또한 동일한 장면을 갖는 두 영상 간에 존재하는 투영 관계를 살펴본다.
10장, 비디오 시퀀스 처리: 비디오 시퀀스를 읽고 저장하고 각 프레임을 처리하기 위한 프레임워크를 제공한다. 또한 프레임에서 다음 프레임의 특징점 추적, 카메라 앞에서 움직이는 전경 객체를 추출하는 방법을 보여준다.
목차
목차
- 1 영상처리 준비
- 소개
- OpenCV 라이브러리 설치
- MS 비주얼 C++로 OpenCV 프로젝트 만들기
- Qt로 OpenCV 프로젝트 만들기
- 영상을 불러들이고, 보여주고, 저장하기
- Qt를 이용한 GUI 애플리케이션 생성
- 2 화소 다루기
- 소개
- 화소값에 접근
- 포인터로 영상 조회
- 반복자로 영상 조회
- 영상을 조회하기 위한 효율적인 반복문
- 이웃 접근으로 영상 조회
- 간단한 영상 산술 연산 실행
- 관심 영역 정의
- 3 영상처리 클래스 구현
- 소개
- 알고리즘 설계 과정에서 전략 패턴 사용
- 처리 모듈 간의 통신을 위한 컨트롤러 사용
- 싱글턴 디자인 패턴 사용
- 애플리케이션 설계 위한 모델-뷰-컨트롤러 구조 사용
- 컬러 공간 변환
- 4 히스토그램을 이용한 화소 개수 세기
- 소개
- 히스토그램 계산
- 영상 모습을 수정하기 위한 룩업 테이블 적용
- 영상 히스토그램 평활화
- 영상 내 특정 내용을 감지 위한 히스토그램 역투영
- 객체를 찾기 위한 평균 이동 알고리즘 사용
- 히스토그램 비교를 이용한 유사 영상 검색
- 5 형태학 연산을 이용한 영상 변환
- 소개
- 형태학 필터를 이용한 영상 침식과 팽창
- 형태학 필터를 이용한 영상 열림과 닫힘
- 형태학 필터를 이용한 에지와 코너 감지
- 워터쉐드를 이용한 영상 분할
- 그랩컷 알고리즘으로 전경 객체 추출
- 6 영상 필터리
- 소개
- 저주파 필터를 이용한 영상 필터링
- 중간 값 필터를 이용한 영상 필터링
- 에지 감지를 위한 방향성 필터 적용
- 영상에 대한 라플라시안 계산
- 7 선, 외곽선, 컴포넌트 추출
- 소개
- 캐니 연산자로 영상 외곽선 감지
- 허프 변환으로 영상 내 선 감지
- 선을 점집합으로 맞추기
- 컴포넌트의 외곽선 추출
- 컴포넌트의 모양 기술자 계산
- 8 관심 점 감지와 매칭
- 소개
- 해리스 코너 감지
- FAST 특징 감지
- 크기 불변 SURF 특징 감지
- SURF 특징 기술
- 9 영상 내 투영 관계 추정
- 소개
- 영상 변환
- 카메라 교정
- 한 쌍의 영상에 대한 기본 행렬 계산
- RANSAC을 이용한 영상 매칭
- 두 영상 간의 호모그래피 계산
- 10 비디오 시퀀스 처리
- 소개
- 비디오 시퀀스 읽기
- 비디오 프레임 처리
- 비디오 시퀀스 쓰기
- 비디오 내 특징점 추적
도서 오류 신고
정오표
정오표
p. 136 11행 cv::NatND → cv::MatND
p. 151 코드 추가
cv::Mat find(const cv::Mat& image) {
cv::Mat result;
hranges[0]
= 0.0;
hranges[1]
= 255.0;
channels[0]
= 0;
channels[1]
= 1;
channels[2]
= 2;
cv::calcBackProject(&image, 1, // 입력 영상
channels, // 사용하는 채널 목록
histogram, // 사용하는 히스토그램
result, // 역투영 결과
ranges, // 범위 값
255.0 // 스케일링 인자
);
// 이진 영상을 얻기 위한 역투영 경계값
if (threshold>0.0)
cv::threshold(result, result,
255*threshold, 255, cv::THRESH_BINARY);
return result;
}