길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스
영상처리 기초와 알고리즘을 이론부터 구현까지 Visual C++ 영상 처리 프로그래밍
정 가
50,000원
I S B N
9791186978153
출 간
2015-12-30
분 량
816쪽
지 은 이
황선규
난 이 도
초급
부 록
예제 파일

이론과 실습이 어우러진 영상 처리 완벽 입문서!

영상 처리 기초부터 고급 알고리즘까지 폭넓게 담았다
다양한 영상 처리 알고리즘을 초보자도 쉽게 이해하고 흥미를 가질 수 있도록 쉬운 용어로 설명한다. 영상 처리 기초부터 시작하여 영상 이해에 필요한 다양한 기법을 하나 둘씩 덧붙여 가도록 구성했다. 복잡한 이론을 직접 C++ 언어로 구현하여 실습해보면서 알고리즘에 대한 이해도를 높인다.

Visual C++ 2015를 사용하여 제대로 된 영상 처리 프로그램을 만들어보자

최신 개발툴과 C++ 기법을 사용하여 이론으로 배운 다양한 영상 처리 기법을 직접 구현한다. 본문에 나온 내용을 따라만 하면 제대로 된 영상 처리 프로그램을 완성할 수 있다. 영상을 표현하는 클래스와 영상 처리 함수 구조를 깔끔하게 디자인하여 직관적으로 코드를 해석할 수 있다.

목차

지은이 서문 
지은이 소개 

1장 영상 처리의 개요
__1.1 영상 처리의 개요
____1.1.1 디지털 영상 처리란?
____1.1.2 다양한 영상 처리 응용 분야
__1.2 영상 처리 프로그래밍
____1.2.1 영상 표현 방법
____1.2.2 2차원 배열 처리
____1.2.3 변형된 2차원 배열 동적 할당

2장 Visual C++ 프로그래밍
__2.1 Visual Studio 개발 환경 구축
____2.1.1 Windows 프로그래밍과 Visual C++
____2.1.2 Visual Studio Community 에디션 설치하기
__2.2 First 프로그램 예제
____2.2.1 새 프로젝트 만들기
____2.2.2 MFC 응용 프로그램 마법사
____2.2.3 Visual Studio 구조
____2.2.4 프로그램 빌드 및 실행
__2.3 MFC 프로그램 소스 코드 분석
____2.3.1 MFC 클래스들 간의 상관 관계
____2.3.2 CFirstApp 클래스 분석
____2.3.3 CMainFrame 클래스 분석
____2.3.4 CChildFrame 클래스 분석
____2.3.5 CFirstDoc 클래스 분석
____2.3.6 CFirstView 클래스 분석
__2.4 Visual Studio Community 2015 기능 살펴보기
____2.4.1 클래스 마법사
____2.4.2 유용한 기능들

3장 BMP 파일의 이해
__3.1 비트맵 개요
____3.1.1 비트맵 정의와 종류
__3.2 BMP 파일의 이해
____3.2.1 BMP 파일의 전체 구조
____3.2.2 비트맵 파일 헤더
____3.2.3 비트맵 정보 헤더
____3.2.4 색상 테이블(팔레트)
____3.2.5 픽셀 데이터
__3.3 실제 BMP 파일의 분석
____3.3.1 그레이스케일 BMP 파일의 분석
____3.3.2 트루컬러 BMP 파일의 분석
__3.4 BMP 영상을 화면에 출력하기
____3.4.1 DIB 화면 출력 함수(SetDIBitsToDevice와 StretchDIBits)
____3.4.2 BmpShow 프로그램 작성

4장 영상 클래스 만들기
__4.1 영상 클래스 설계
____4.1.1 IppDib와 IppImage 클래스
____4.1.2 IppCreate 프로젝트 생성하기
__4.2 IppDib 클래스 만들기
____4.2.1 IppDib 클래스 추가
____4.2.2 비트맵 생성과 소멸
____4.2.3 BMP 파일 입출력(불러오기 및 저장하기)
____4.2.4 비트맵 화면 출력
____4.2.5 클립보드 지원(복사 및 붙여넣기)
____4.2.6 기타 유용한 기능(연산자 재정의, 비트맵 정보 제공 등)
__4.3 IppImage 클래스 만들기
____4.3.1 IppImage 클래스 추가
____4.3.2 다양한 자료형 지원(템플릿 클래스)
____4.3.3 영상 생성과 소멸
____4.3.4 픽셀 값 접근 기능
____4.3.5 기타 유용한 기능(연산자 재정의, 비트맵 정보 제공 등)
____4.3.6 RGBBYTE 클래스 정의
__4.4 IppDib와 IppImage 클래스 상호 변환
____4.4.1 IppDib와 IppImage 클래스 변환 방법
____4.4.2 IppDib와 IppImage 클래스의 상호 변환 구현
__4.5 IppDib 클래스 사용하기
____4.5.1 IppDib 클래스를 사용하여 BMP 파일 화면 출력하기

5장 영상 처리 프로그램 틀 만들기
__5.1 ImageTool 프로그램 만들기
____5.1.1 ImageTool 프로젝트 생성
____5.1.2 영상 클래스 추가하기
____5.1.3 BMP 파일 불러오기와 저장하기
____5.1.4 화면 출력 기능 추가하기
____5.1.5 프로그램 구동 시 빈 창 띄우지 않기
____5.1.6 창 크기를 영상의 크기에 맞추기
____5.1.7 영상의 바깥 영역에 빗금 그리기
__5.2 영상 새로 만들기 기능 구현 (대화 상자 만들기)
____5.2.1 새 대화 상자를 만드는 순서
____5.2.2 새 대화 상자 추가
____5.2.3 대화 상자 디자인(컨트롤 배치)
____5.2.4 대화 상자에 대한 클래스 추가
____5.2.5 대화 상자 컨트롤에 대한 멤버 변수 추가
____5.2.6 대화 상자 화면에 나타내기
__5.3 영상을 새 창으로 띄우기 (메뉴 및 메뉴 이벤트 처리기 추가)
____5.3.1 영상을 새 창으로 띄우기 위한 프로그램 구조
____5.3.2 새 메뉴 항목 추가
____5.3.3 메뉴 이벤트 처리기 추가
____5.3.4 복사 및 붙여넣기 기능 구현
__5.4 영상을 확대하여 보기(툴바 추가)
____5.4.1 영상을 확대하여 출력하기
____5.4.2 영상 확대하여 보기 메뉴 및 메뉴 이벤트 처리기 추가
____5.4.3 툴바 버튼 추가
____5.5.1 영상 정보 출력창 구성
____5.5.2 출력창에 영상 정보 표시하기
____5.5.3 상태바 구역 나누기
____5.5.4 상태바에 영상 정보 표시

6장 화질 향상 기법
__6.1 영상 반전하기
____6.1.1 IppImage 클래스를 이용한 픽셀 값 접근 방법
____6.1.2 영상의 반전이란?
____6.1.3 영상 반전 구현
____6.1.4 영상 반전 메뉴 만들기
____6.1.5 매크로 함수를 이용한 코드 간소화
__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 실숫값을 입력 받는 감마 보정 대화 상자 만들기
____6.3.4 대화 상자 초기화 및 컨트롤 동작 제어
____6.3.5 감마 보정 메뉴 만들기
__6.4 히스토그램 분석
____6.4.1 히스토그램이란?
____6.4.2 히스토그램 대화 상자 만들기
____6.4.3 대화 상자에 히스토그램 그리기
____6.4.4 히스토그램 보기 메뉴 만들기
__6.5 히스토그램 스트레칭과 균등화
____6.5.1 히스토그램 스트레칭
____6.5.2 히스토그램 균등화
____6.5.3 히스토그램 스트레칭과 균등화 메뉴 만들기

7장 영상의 산술 및 논리 연산
__7.1 영상의 산술 연산
____7.1.1 덧셈 연산
____7.1.2 뺄셈 연산
____7.1.3 평균 연산
____7.1.4 차이 연산
__7.2 영상의 논리 연산
____7.2.1 AND 연산
____7.2.2 OR 연산
__7.3 산술 및 논리 연산 기능 구현
____7.3.1 도큐먼트 리스트를 받아오는 방법
____7.3.2 산술 및 논리 연산 대화 상자 만들기
____7.3.3 대화 상자에 도큐먼트 선택 기능 추가하기
____7.3.4 산술 및 논리 연산 메뉴 및 메뉴 이벤트 추가
__7.4 비트 평면 분할
____7.4.1 비트 평면이란?
____7.4.2 비트 평면 분할 메뉴 및 메뉴 이벤트 처리기 추가
____7.4.3 모든 창 닫기 기능 추가

8장 다양한 공간적 필터링 기법
__8.1 공간적 필터링
____8.1.1 공간적 필터링의 기본 개념
____8.1.2 공간적 필터링의 구현 방법
__8.2 영상 부드럽게 만들기
____8.2.1 평균 값 필터
____8.2.2 가중 평균 값 필터
____8.2.3 가우시안 필터
____8.2.4 가우시안 필터 대화 상자 만들기
____8.2.5 영상 부드럽게 만들기 메뉴 만들기
__8.3 영상 날카롭게 만들기
____8.3.1 언샤프 마스크 필터링
____8.3.2 라플라시안을 이용한 언샤프 마스크 필터 구현
____8.3.3 하이부스트 필터
____8.3.4 영상 날카롭게 만들기 메뉴 만들기
__8.4 잡음 생성
____8.4.1 가우시안 잡음 생성
____8.4.2 소금&후추 잡음 생성
____8.4.3 잡음 추가 대화 상자 만들기
____8.4.4 잡음 추가 메뉴 만들기
__8.5 잡음 제거를 위한 비선형 필터
____8.5.1 미디언 필터
____8.5.2 미디언 필터 메뉴 만들기
____8.5.3 비등방성 확산 필터
____8.5.4 비등방성 확산 대화 상자 만들기
____8.5.5 비등방성 확산 필터 메뉴 만들기

9장 영상의 기하학적 변환
__9.1 영상의 이동 변환
____9.1.1 이동 변환이란?
____9.1.2 이동 변환의 구현
____9.1.3 이동 변환 대화 상자 만들기
____9.1.4 이동 변환 메뉴 만들기
__9.2 영상의 크기 변환
____9.2.1 크기 변환과 보간법
____9.2.2 최근방 이웃 보간법
____9.2.3 양선형 보간법
____9.2.4 3차 회선 보간법
____9.2.5 크기 변환 대화 상자 만들기
____9.2.6 크기 변환 대화 상자 초기화 및 컨트롤 동작 제어
____9.2.7 크기 변환 메뉴 만들기
__9.3 영상의 회전 변환
____9.3.1 회전 변환에 관한 이론적 설명
____9.3.2 임의의 각도 회전 구현
____9.3.3 특수 각도에 대한 회전 구현
____9.3.4 회전 변환 대화 상자 만들기
____9.3.5 회전 변환 메뉴 만들기
__9.4 영상의 대칭 변환
____9.4.1 좌우 대칭
____9.4.2 상하 대칭
____9.4.3 좌우 대칭과 상하 대칭 메뉴 만들기

10장 주파수 공간에서의 영상 처리
__10.1 주파수 공간의 이해
____10.1.1 1차원 데이터에 대한 이산 푸리에 변환
____10.1.2 1차원 데이터에 대한 이산 푸리에 변환의 구현
__10.2 영상의 푸리에 변환
____10.2.1 2차원 영상의 푸리에 변환
____10.2.2 2차원 영상의 푸리에 변환 구현
____10.2.3 개선된 2차원 영상의 푸리에 변환
____10.2.4 DFT와 DFTRC 메뉴 만들기
__10.3 고속 푸리에 변환
____10.3.1 고속 푸리에 변환의 이론적 배경
____10.3.2 2차원 영상의 고속 푸리에 변환
____10.3.3 FFT 메뉴 만들기
__10.4 주파수 공간에서의 필터링
____10.4.1 이상적 저역 및 고역 통과 필터
____10.4.2 가우시안 저역 및 고역 통과 필터
____10.4.3 주파수 공간 필터링 대화 상자 만들기
____10.4.4 주파수 공간 필터링 메뉴 만들기

11장 영상의 특징값 추출 방법
__11.1 마스크를 이용한 엣지 검출
____11.1.1 엣지와 함수 그래디언트
____11.1.2 마스크 기반 엣지 검출
____11.1.3 마스크 기반 엣지 검출기 구현
____11.1.4 마스크 기반 엣지 검출 메뉴 만들기
__11.2 캐니 엣지 검출기
____11.2.1 캐니 엣지 검출 방법
____11.2.2 캐니 엣지 검출기 구현
____11.2.3 캐니 엣지 검출 대화상자 만들기
____11.2.4 캐니 엣지 검출 메뉴 만들기
__11.3 허프 변환을 이용한 직선 검출
____11.3.1 허프 변환을 이용한 직선 검출 방법
____11.3.2 룩업 테이블을 이용한 허프 변환의 구현
____11.3.3 허프 변환 메뉴 만들기
__11.4 해리스 코너 포인트 검출 방법
____11.4.1 해리스 코너 검출 방법
____11.4.2 해리스 코너 검출 구현
____11.4.3 해리스 코너 검출 대화 상자 추가
____11.4.4 해리스 코너 검출 메뉴 만들기

12장 컬러 영상 처리
__12.1 트루컬러 비트맵 다루기
____12.1.1 IppImage 클래스에서 컬러 픽셀 참조 방법
____12.1.2 트루컬러 영상의 반전
____12.1.3 트루컬러 영상을 그레이스케일 영상으로 변환
____12.1.4 그레이스케일로 변환 메뉴 만들기
__12.2 다양한 색 모델
____12.2.1 색상 표현 방법
____12.2.2 RGB 색 모델
____12.2.3 HSI 색 모델
____12.2.4 YUV 색 모델
__12.3 색상 평면 나누기와 합치기
____12.3.1 색상 평면 나누기
____12.3.2 색상 평면 나누기 메뉴 만들기
____12.3.3 색상 평면 합치기
____12.3.4 색상 평면 합치기 대화 상자 만들기
____12.3.5 색상 평면 합치기 메뉴 만들기
__12.4 컬러 영상 처리
____12.4.1 컬러 엣지 검출
____12.4.2 컬러 엣지 검출 메뉴 만들기
____12.4.3 컬러 영상의 히스토그램 균등화

13장 영상 분할
__13.1 이진화 기법
____13.1.1 영상의 이진화
____13.1.2 반복적 방법을 이용한 이진화 임계값 결정 방법
____13.1.3 미리보기 기능이 있는 이진화 대화 상자 만들기
____13.1.4 이진화 메뉴 만들기
__13.2 레이블링
____13.2.1 고전적 레이블링 기법
____13.2.2 고전적 레이블링 기법 구현
____13.2.3 레이블링 메뉴 만들기
__13.3 외곽선 추적
____13.3.1 외곽선 추적 기법
____13.3.2 외곽선 추적 메뉴 만들기

14장 모폴로지 연산
__14.1 이진 영상의 모폴로지 연산
____14.1.1 모폴로지를 위한 기본 정의
____14.1.2 이진 영상의 침식과 팽창
____14.1.3 이진 영상의 열기와 닫기 연산
____14.1.4 이진 영상의 모폴로지 메뉴 만들기
____14.1.5 모폴로지 기법을 응용한 외곽선 검출
__14.2 그레이스케일 영상의 모폴로지 연산
____14.2.1 그레이스케일 영상의 침식과 팽창 연산
____14.2.2 그레이스케일 영상의 열기와 닫기 연산
____14.2.3 그레이스케일 영상의 모폴로지 메뉴 만들기

15장 모양 기술자
__15.1 외곽선 기반의 푸리에 기술자
____15.1.1 푸리에 기술자
____15.1.2 푸리에 기술자 대화 상자 만들기
____15.1.3 푸리에 기술자 메뉴 만들기
__15.2 영역 기반의 불변 모멘트
____15.2.1 불변 모멘트
____15.2.2 불변 모멘트 메뉴 만들기
__15.3 저니키 모멘트
____15.3.1 저니키 모멘트
____15.3.2 저니키 모멘트의 구현
____15.3.3 저니키 모멘트 메뉴 만들기
____15.4.1 템플릿 매칭
__15.4 템플릿 매칭
____15.4.2 템플릿 매칭 메뉴 만들기

16장 동영상 처리
__16.1 AVI 파일 처리하기
____16.1.1 AVI 파일의 구조와 사용법
____16.1.2 IppAvi 클래스 만들기
__16.2 AVI 플레이어 만들기
____16.2.1 새 도큐먼트 템플릿 등록하기
____16.2.2 IppAvi 클래스를 이용한 동영상 재생
____16.2.3 동영상 재생을 위한 툴바 만들기
____16.2.4 동영상 재생을 위한 코드 작성
__16.3 움직임 벡터 추정
____16.3.1 블록 매칭 움직임 추정 방법
____16.3.2 IppFullSearch 클래스 만들기
____16.3.3 움직임 벡터 메뉴 만들기

부록 A JPEG 파일 지원
__A.1 JPEG 라이브러리 사용
____A.1.1 JPEG 압축 원리
____A.1.2 JPEG 라이브러리 빌드하기
____A.1.3 JPEG 라이브러리 사용하기

부록 B OpenCV 사용하기
__B.1 OpenCV 개요와 설치
__B.2 OpenCV 영상 표현 방법
__B.3 ImageTool 프로젝트에서 OpenCV 사용하기
__B.4 OpenCV 사용 예제

찾아보기
실습 찾아보기
더보기접기

저자&기여자

ㆍ지은이 황선규

소개
2006년 한양대학교에서 영상 처리 전공으로 박사 학위를 받았으며, 이후 뉴질랜드 캔터베리 대학교와 한양대학교에서 박사후과정(PostDoc)과 연구 교수로 재직하였다. 2009년 LG전자 MC연구소에 입사하여 전략 스마트폰 카메라 기능 개발과 안드로이드 카메라 프레임워크 업무를 담당하였다. 2016년부터 (주)패스트캠퍼스에서 OpenCV와 컴퓨터 비전 강의를 진행하고 있고, 2019년부터는 ‘프로그래머스’ 사이트를 통해 코딩 테스트와 알고리즘 강의도 진행하고 있다. 저서로는 『OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝』, 『Visual C++ 영상 처리 프로그래밍』, 『영상 처리 프로그래밍 by Visual C++』, 역서로는 『OpenCV 제대로 배우기』가 있다.

보도자료

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.