Visual C++ 영상 처리 프로그래밍
도서명:Visual C++ 영상 처리 프로그래밍
저자/출판사:황선규/길벗
쪽수:816쪽
출판일:2015-12-30
ISBN:9791186978153
목차
지은이 서문
지은이 소개
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 사용 예제
찾아보기
실습 찾아보기