Download presentation
Presentation is loading. Please wait.
1
영상처리 시작하기 & 영상처리 프로그램 만들기
(토) 1주차 영상처리 프로그래밍 영상처리 시작하기 & 영상처리 프로그램 만들기 중원대학교 의료공학과 신 진솔
2
01. 영상처리 시작하기
3
디지털 영상처리란 장비를 이용하여 획득한 영상을 원하는 목적에 따라 변형, 가공하거나 영상으로부터 필요한 정보를 얻어내는 작업. Ex) Photoshop, Photowonder 등 영상변환 영상분석 영상인식 영상처리 분류 획득 정보의 수준
4
영상의 번짐 제거, 영상의 경계선 추출, 특징 점 추출 (영상인식을 위한 전처리 과정.)
디지털 영상처리 분류 HDR 영상의 밝기를 수정하는 기법 영상변환 영상의 번짐 제거, 영상의 경계선 추출, 특징 점 추출 (영상인식을 위한 전처리 과정.) 영상분석 기계학습 주어진 데이터 분석, 정리 영상인식 영상변환 영상의 품질은 픽셀의 잡음이나 해상도와 관련. 영상의 특성은 밝기와 명암, 선명도와 관련. 영상분석 입력된 영상 내부의 고유한 정보 추출. 영상 인식 영상 고유의 수치화 될 수 있는 특성 값 보다는 영상에 담긴 피사체인 풍경이나 사물에 대한 정보가 중요한 대상이 됨. 영상의 피사체를 식별하거나 범주를 분류하는 작업
5
영상처리 응용 분야 영상편집 분야 방송 및 영화 분야 인공지능 로봇 - 무인 자동차 시스템 위치 인식, 도로 환경 분석 목적
공장 자동화 의료 분야 - 초기 영상에서 원하는 부분이 잘 드러나도록 보정하고 가공하는 영상 변환 작업 보안 및 감시 시스템
6
02. 영상처리 프로그램 만들기
7
Visual Studio 프로그램 유형 Win32 콘솔 응용 프로그램 MFC 응용 프로그램
명령어를 입력 할 수 있는 콘솔 화면상에서 실행되는 프로그램. MFC 응용 프로그램 이벤트 처리 기반의 프로그램 형태. 마우스 클릭과 같은 사용자의 입력에 따라 코드 수행. 단일 문서 인터페이스 (Single Document Interface) 다중 문서 인터페이스 (Multiple Document Interface) → 프레임, 뷰, 도큐먼트 클래스로 된 세가지 요소를 가지는 형태의 프로그램. 대화 상자 기반 (Dialog based) → 프레임, 뷰, 도큐먼트 클래스 없이 메시지를 발생시킬 수 있는 컨트롤이 배치된 대화상자 프로그램.
8
프로젝트 생성하기 프로젝트 생성하기 [ 새 프로젝트 ] → [ MFC 응용프로그램 ] → [응용 프로그램 종류: 대화상자 기반] 생성된 프로젝트는 vcxproj에 저장되며, 저장된 프로젝트를 불러올 때는 프로젝트의 상위 개념인 솔루션 정보가 들어있는 확장자 sln파일을 열면 된다.
9
프로젝트 생성하기 프로젝트 설정하기 1. 구성과 플랫폼
[ 빌드 ] → [ 구성 관리자 ] OR [ 보기 ] → [ 도구 모음 ] → [ 표준 ] : [ Debug ] OR [ Release ] – Debugging의 유/무 선택 Release 모드는 디버깅은 사용할 수 없으나 프로그램의 정상적 실행 여부를 판단하기엔 효과적. 64비트 프로그램 만들기 [ 새로 만들기 ] → [새 솔루션 플랫폼 : x64선택]
10
[프로젝트] -> [(프로젝트 이름) 속성] -> 구성속성 -> 문자 집합
프로젝트 생성하기 2. 문자 집합 문자 집합: 프로그램 내에서 입출력과 파일 이름 등에 사용하는 문자들을 미리 정의하여 모아 놓은 것. ASCII 코드는 1바이트 크기로 256개의 문자를 표현할 수 있으며, 이를 단일 바이트 문자 집합 (SBCS)라고 한다. 한글이나 한자를 표현 할 수 있는 2바이트 크기의 이중 바이트 문자 집합(DBCS)라고 한다. 이 둘을 합친 다중 바이트 문자 집합(MBCS)이 사용 된다. [프로젝트] -> [(프로젝트 이름) 속성] -> 구성속성 -> 문자 집합
11
영상편집기 프로그램 만들기 다음과 같은 기능을 수행하는 프로그램을 만든다. 대화상자 기반 응용 프로그램 파일 이해하기.
파일로부터 영상읽기 영상의 픽셀 값을 조작하여 반전영상 만들기 두 영상을 합쳐서 합성 영상 만들기 입력 및 결과 영상을 화면에 출력하기 결과 영상을 파일로 저장하기 대화상자 기반 응용 프로그램 파일 이해하기. (파일명).h, (파일명).cpp : 프로그램의 가장 바깥 틀에 해당. 특별한 경우가 아니면 프로젝트를 만들 때 생긴 파일을 별도로 수정 할 일은 없다 (파일명)Dlg.h/(파일명)Dlg.cpp : 대화상자 기반 프로그램의 핵심이 되는 파일. 대화상자의 GUI화면을 담는 리소스 파일들과 연동하여, 대화상자를 통한 이벤트가 발생하였을 때 이를 멤버 함수들로 하여금 처리 하도록함. 이들 파일에 각 이벤트의 처리 함수를 작성하는 것이 핵심 구현 사항. Stdafx.h, stdafx.cpp : 미리 컴파일된 헤더를 위한 파일. Resource.h, (파일명).rc: 대화상자의 GUI등 프로젝트의 리소스에 대한 정의가 담겨있음.
12
프로젝트 생성하기 영상의 파일 입출력 및 화면 출력 기능은 외부 소스를 추가 하여 사용
외부소스를 해당 프로젝트 폴더에 복사한다. (프로젝트 이름) -> 오른쪽 클릭 -> 추가 -> 기존 항목, 외부 소스파일 추가 (프로젝트 이름) -> 추가 -> 새 필터 생성된 새 필터에 불러온 외부 소스를 추가하여 정리 할 수 있다. 추가한 소스파일을 사용하기 위해서는 추가된 소스 파일 중 가장 상위에 해당하는 파일의 헤더를 추가해주면 된다.
13
이벤트 처리 함수 구현하기 사용자가 명령을 내릴 때 누를 수 있는 단추와 같은 요소를 컨트롤 이라고 한다. 이러한 요소는 [보기] -> 도구상자로 불러 올 수 있다. 이러한 편집은 리소스뷰 -> Dialog -> (파일명)DIALOG 에서 편집할 수 있다.
14
이벤트 처리 함수 구현하기 도구상자의 두 번째에 위치하는 버튼을 클릭한 후 창에 크기에 맞게 생성해 준다.
이후 이 버튼의 이름을 설정해 준다. 버튼에서 우클릭 속성 ID항목에 각각 IDC_BOTTON_INVERSION, IDC_BUTTON_BLENDING를 입력해 준다. CAPTION 항목에 각각 영상 반전과 영상 합성을 입력해 준다.
15
이벤트 처리 함수 구현하기 생성된 버튼 우클릭 -> [이벤트 처리기 추가] -> 클래스 목록 선택
OnBnClickedButtonInversion() 영상반전함수 파일 대화상자로 영상 읽기 입력 영상 화면 추력 영상 규격 정보 획득 결과 영상 생성 입력 영상 픽셀을 반전하여 겨라 영상에 대입 결과 영상 저장 및 화면 출력
16
이벤트 처리 함수 구현하기 OnBnClickedButtonBlending () 영상합성함수 구현하기
파일 대화상자로 영상 두 장 읽기 입력 영상 화면 추력 영상 규격 정보 획득 결과 영상 생성 두 입력 영상 픽셀의 평균을 결과 영상에 대입 결과 영상 저장 및 화면 출력
17
실행결과
18
실행결과
19
영상처리 프로그래밍 학업계획 일자 범위 내용 비고 1주차 1월 5일 ~ 11일 1P ~ 120P 2주차 1월 12일 ~ 18일
영상 데이터 클래스 구현 영상 입출력 프로그램 구성 영상처리 시작하기 2주차 1월 12일 ~ 18일 121P ~ 232P 픽셀단위영상처리 영상의 광학적 변환 영상처리 알고리즘 3주차 1월 19일 ~ 25일 233P ~ 320P 영상의 기하학적 변환 컬러영상처리 4주차 1월 26일 ~ 2월 1일 321P ~ 406p 주파수 영역 영상처리 영상분할 5주차 2월 2일 ~ 8일 407P ~ 471P 모폴로지 처리 영상의 특징 값 추출 라이브러리를 활용한 영상처리 6주차 2월 9일 ~ 15일 481P ~ 536P 영상정합 카메라 기하학 7주차 2월 16일 ~ 22일 537P ~ 614P VFW를 이용한 동영상처리 Open CV 사용하기 8주차 2월 23일 ~ 3월 1일 614P ~ 682P Open CV 알고리즘 GPU를 이용한 영상처리
Similar presentations