07장 영역 처리를 이용한 에지 검출 ㅎㅎ 에지 검출의 개요 에지 검출기 1차 미분을 이용한 에지 검출

Slides:



Advertisements
Similar presentations
1/29 키보드로 직접 입력할 수 없는 다양한 기호와 한자를 입력하는 방법을 알아 보자. 또한 블록으로 영역을 설정하는 여러 가지 방법에 대해 살펴본 후 블록 으로 설정된 내용을 복사하여 붙여넣거나, 잘라내고 이동하는 방법에 대해서 도 알아보자. 02_ 문서의 입력과 편집.
Advertisements

중원대학교 의료공학과 신 진솔 (WED). 영상의 밝기 & 명암 조절 영상의 감마보정 영상의 잡음 감소.
6장. 공간 영역 기반처리(3) - 에지 추출 임은경 6장 공간영역 기반 처리(3) - 에지 추출.
4장 배열과 함수 한빛미디어(주).
적외선으로 감지하는 추적 카메라 조원 : 최승호, 백진영, 이현지.
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷 MFC 응용 프로그램 마법사를 이용한 MFC 프로젝트 작성
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
화소 영역 처리의 개념 회선 처리의 원리 블러링 샤프닝 요약 연습문제
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
제 7 장 함수 사용을 통해 엑셀 정복하기.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
색좌표 변환기의 설계 예 색좌표(Color Space) 색의 수학적인 표현 방법 RGB YIQ, YUV, YCbCr CMYK
신호처리 실험 (Signal Processing Lab)
Excel 일차 강사 : 박영민.
윤 홍 란 다이알로그(대화상자) 윤 홍 란
연결리스트(linked list).
제 9 장 구조체와 공용체.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
10장 랜덤 디지털 신호처리 1.
Windows Server 장. 사고를 대비한 데이터 백업.
06장 ㅎㅎ 화소 영역 처리 화소 영역 처리의 개념 회선 처리의 원리 블러링 샤프닝 한빛미디어(주)
강원대학교 지구물리학과 이훈열 참고: PG Steamer User’s Guide
디지털영상처리 및 실습 대구보건대학 방사선과.
Communication and Information Systems Lab. 황재철
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
상관함수 correlation function
11장. 1차원 배열.
7 영역처리를 이용한 에지 검출 01 에지 검출의 개요 02 에지 검출기 03 1차 미분을 이용한 에지 검출
13. 연산자 오버로딩.
군집 분석.
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
TFT-LCD 구조 동작원리 응용분야.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
연산자 (Operator).
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
Clipping 이진학.
도 서 명 | IT CookBook, 디지털 영상처리 입문 : 오감을 익히는 3차원 입체 학습
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
Window, Viewport Window, Viewport.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
Chapter 1 단위, 물리량, 벡터.
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
Chapter 1 단위, 물리량, 벡터.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
1. 정투상법 정투상법 정투상도 (1) 정투상의 원리
04장 ㅎㅎ 화소점 처리 화소 점 처리의 개념 디지털 영상의 산술연산과 논리연산 디지털 영상의 다양한 화소 점 처리 기법
04장 ㅎㅎ 화소점 처리 화소 점 처리의 개념 디지털 영상의 산술연산과 논리연산 디지털 영상의 다양한 화소 점 처리 기법
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
Summary of Pointers and Arrays
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
영역 기반 처리.
 6장. SQL 쿼리.
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

07장 영역 처리를 이용한 에지 검출 ㅎㅎ 에지 검출의 개요 에지 검출기 1차 미분을 이용한 에지 검출 2차 미분을 이용한 에지 검출 한빛미디어(주)

학습목표 7장. 영역 처리를 이용한 에지 검출 에지의 개념을 학습한다. 이동과 차분을 기본으로 한 에지 검출기를 학습한다. 미분과 에지의 관련성을 소개한다. 1차 미분 회선 마스크를 이용한 에지 검출기를 학습한다. 2차 미분 회선 마스크를 이용한 에지 검출기를 학습한다.

Section 01 에지 검출의 개요 에지(edge) 디지털 영상의 밝기가 낮은 값에서 높은 값으로 또는 높은 값에서 낮은 값으로 변하는 지점 디지털 영상을 구성하는 객체 간의 경계(= 경계선) 디지털 영상의 에지: 물체 식별, 위치/모양/크기 등을 인지하고 방향성을 탐지할 수 있는 정보 제공

에지 검출의 개요(계속) 영역처리 간단한 에지 추출 기법 미분을 이용한 에지 검출 방법 에지를 검출하기 위한 방법으로 사용됨 연산 자체가 간단하고 빠름. 유사 연산자(Homogeneity Operator)와 차 연산자(Difference Operator)가 있음. 이 두 방법으로 얻은 에지를 강화하거나 약화시키는 추가적인 임계 값(Threshold)을 처리하는 방법이 있음. 미분을 이용한 에지 검출 방법 에지가 화소의 밝기 변화율에 관여한다는 것 1차 미분을 이용한 검출 방법과 2차 미분을 이용한 검출 방법 있음 2차 미분을 이용한 검출 방법: 1차 미분으로 얻은 결과에 미분을 한 번 더 추가하여 에지 검출의 성능을 향상시킨 것

에지 검출의 개요(계속)

디지털 영상의 에지를 검출하는 가장 쉬운 방법은 화소 간의 차이를 이용하는 것 Section 02 에지 검출기 디지털 영상의 에지를 검출하는 가장 쉬운 방법은 화소 간의 차이를 이용하는 것 이동과 차분(Shift And Difference) 화소의 위치를 위쪽, 아래쪽, 왼쪽, 오른쪽으로 하나씩 이동시킨 뒤 원래 화소에서 이동 위치의 화소를 빼서 에지를 구함. 에지 검출기는 대부분 이 방법을 응용함.

[실습하기 7-1] 이동과 차분 처리 프로그램 ResourceView 창에서 [Menu]-[IDR_IMAGETYPE] 더블클릭 → 메뉴 추가 [MFC ClassWizard] 대화상자를 이용해 추가된 메뉴에서 이동과 차분 처리를 실행하는 함수 추가 Doc 클래스에 다음 프로그램 추가

[실습하기 7-1] 이동과 차분 처리 프로그램 void CImageProcessingDoc::OnDiffOperatorHor() { int i, j; double DiffHorMask[3][3] = {{0., -1., 0.}, {0., 1., 0.}, {0., 0., 0.}}; // 수평 필터 선택 m_Re_height = m_height; m_Re_width = m_width; m_Re_size = m_Re_height * m_Re_width; m_OutputImage = new unsigned char [m_Re_size]; m_tempImage = OnMaskProcess(m_InputImage, DiffHorMask); // m_tempImage = OnScale(m_tempImage, m_Re_height, m_Re_width);

[실습하기 7-1] 이동과 차분 처리 프로그램 for(i=0 ; i< m_Re_height ; i++){ for(j=0 ; j< m_Re_width ; j++){ if(m_tempImage[i][j] > 255.) m_tempImage[i][j] = 255.; if(m_tempImage[i][j] < 0.) m_tempImage[i][j] = 0.; } m_OutputImage[i* m_Re_width + j] = (unsigned char)m_tempImage[i][j];

[실습하기 7-1] 이동과 차분 처리 프로그램 View 클래스에 다음 프로그램 추가 void CImageProcessingView::OnDiffOperatorHor() { CImageProcessingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->OnDiffOperatorHor(); Invalidate(TRUE); }

유사 연산자 기법 가장 단순한 에지 검출 방법으로 화소를 감산한 값에서 최대값을 결정하여 에지를 검출 뺄셈연산이 여러 번 수행되므로 계산 시간이 많이 소요됨

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 ResourceView 창에서 [Menu]-[IDR_IMAGETYPE] 더블클릭 → 메뉴 추가 [MFC ClassWizard] 대화상자를 이용해 추가된 메뉴에서 유사 연산자 에지 검출 처리를 실행하는 함수 추가 Doc 클래스에 다음 프로그램 추가

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 OnHomogenOperator 함수 추가하기 void CImageProcessingDoc::OnHomogenOperator() { int i, j, n, m; double max, **tempOutputImage; m_Re_height = m_height; m_Re_width = m_width; m_Re_size = m_Re_height * m_Re_width; m_OutputImage = new unsigned char [m_Re_size]; m_tempImage = Image2DMem(m_height + 2, m_width + 2); tempOutputImage = Image2DMem(m_Re_height, m_Re_width); for(i=0 ; i<m_height ; i++){ for(j=0 ; j<m_width ; j++){ m_tempImage[i+1][j+1] = (double)m_InputImage[i * m_width + j]; }

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 OnHomogenOperator 함수 추가하기(계속) for(i=0 ; i<m_height ; i++){ for(j=0 ; j<m_width ; j++){ max = 0.0; // 블록이 이동할 때마다 최대값 초기화 for(n=0 ; n<3 ; n++){ for(m=0 ; m<3 ; m++){ if(DoubleABS(m_tempImage[i+1][j+1] - m_tempImage[i+n][j+m]) >= max) // 블록의 가운데 값 - 블록의 주변 픽셀 값의 절대 값 // 중에서 최대값을 찾는다. max = DoubleABS(m_tempImage[i+1] [j+1] - m_tempImage[i+n][j+m]); } tempOutputImage[i][j] = max; // 찾은 최대값을 출력 값으로 지정

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 OnHomogenOperator 함수 추가하기(계속) for(i=0 ; i< m_Re_height ; i++){ for(j=0 ; j< m_Re_width ; j++){ if(tempOutputImage[i][j] > 255.) tempOutputImage[i][j] = 255.; if(tempOutputImage[i][j] < 0.) tempOutputImage[i][j] = 0.; } m_OutputImage[i* m_Re_width + j] = (unsigned char)tempOutputImage[i][j];

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 DoubleABS 함수 추가하기 double CImageProcessingDoc::DoubleABS(double X) { // 실수의 절대 값 연산 함수 if(X >= 0) return X; else return -X; }

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 View 클래스에 다음 프로그램 추가 void CImageProcessingView::OnHomogenOperator() { CImageProcessingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->OnHomogenOperator(); Invalidate(TRUE); }

[실습하기 7-2] 유사 연산자 에지 검출 처리 프로그램 프로그램 실행 결과 영상

차 연산자 기법 유사 연산자의 계산 시간이 오래 걸리는 단점을 보안해 주는 방법 뺄셈 연산이 여덟 번 필요한 유사 연산자와는 달리 화소당 네 번만 사용되어 연산 시간이 빠름.

차 연산자 기법(계속)

보통 에지 추출기와 함께 사용되어 강한 에지는 강하게, 약한 에지를 약화게 함. 임계 값을 이용한 에지 처리 보통 에지 추출기와 함께 사용되어 강한 에지는 강하게, 약한 에지를 약화게 함. 효율적으로 영상처리를 하기 위해서는 검출된 에지를 강조하거나 약화시킬 필요가 있음.

Section 03 1차 미분을 이용한 에지 검출 디지털 영상의 에지는 화소의 밝기 값이 급격히 변하는 부분이므로, 이 변화 부분을 탐지하는 연산을 이용해 에지 검출 에지 추출에는 함수의 변화분을 찾는 미분 연산이 이용됨.

1차 미분을 이용한 에지 검출(계속) 좌표 (x, y)에서 각 방향으로의 편미분 이웃 데이터와의 차이 값으로 표현되므로, 디지털 영상의 미분은 각 방향의 변화율을 나타냄. Hr는 행 검출기, Hc는 열 검출기

1차 미분을 이용한 에지 검출(계속) 영상의 전체 변화 분의 크기 계산 에지 검출을 위한 1차 미분 연산을 영역처리 기법의 회선 처리로 수행하려면 행 검출기 Hr과 열 검출기 Hc를 회선 마스크로 생성 편미분 식에서 제시된 이웃 데이터와의 차이를 표현하는 회선 마스크를 얻을 수 얻음. 얻은 1차 미분 회선 마스크는 이동과 차분의 회선 마스크와 형태가 비슷함. 마스크의 크기가 클수록 상세한 에지를 검출하기 어렵고, 작으면 잡음에 민감하며, 회선 마스크의 합은 0이 됨

1차 미분을 이용한 에지 검출(계속)

1차 미분 회선 마스크의 종류 종류가 다양함. 로버츠(Roberts), 소벨(Sobel), 프리윗(Prewitt) 마스크가 대표적 행 검출 마스크와 열 검출 마스크가 있으며, 각 회선 마스크는 고유한 특징이 있음.

로버츠 마스크 장점 : 크기가 작아 매우 빠른 속도로 동작하여 효과적으로 사용 가능. 단점 : 돌출된 값을 잘 평균할 수 없으며, 잡음에 민감함.

프리윗 마스크 장점 : 돌출된 값을 비교적 잘 평균화함. 단점 : 대각선보다 수평과 수직에 놓인 에지에 더 민감하게 반응함.

소벨 마스크 장점 : 돌출된 값을 비교적 잘 평균화함. 단점 : 대각선 방향에 놓인 에지에 더 민감하게 반응함.

Compass Gradient Operator 에지를 좀더 정확하게 검출하려고 각기 다른 방향의 마스크 여덟 개를 이용하여 에지를 검출하는 방법 여덟 방향으로 수행한 연산의 결과 중 최대값을 최종 출력으로 결정함. 단점 마스크의 크기가 작을수록 잡음에 민감하고, 클수록 상세한 에지를 검출할 수 없음.

임의의 이산 함수 f(x)에서의 1차 미분과 2차 미분 결과 Section 04 2차 미분을 이용한 에지 검출 임의의 이산 함수 f(x)에서의 1차 미분과 2차 미분 결과 2차 미분을 이용한 에지 검출기는 미분을 한 번 더 수행하므로, 1차 미분의 단점을 완화시켜 둔감하게 반응하도록 만듦. 1차 미분을 이용한 에지 검출기의 단점: 에지가 있는 영역을 지날 때 민감하게 반응 2차 미분을 이용한 에지 검출기의 장점과 단점 장점: 검출된 에지를 끊거나 하지 않고 연결된 폐곡선을 형성함. 단점: 고립된 잡음에 민감하고, 윤곽의 강도만 검출하지 방향은 구하지 못함.

2차 미분을 이용한 에지 검출(계속) 2차 미분 연산은 에지 부분에서 부호가 바뀌는 영교차(Zero Crossing)의 특성이 있음.

라플라시안(Laplacian) 연산자 대표적인 2차 미분 연산자로, 모든 방향의 에지를 강조함. 라플라시안 연산자 공식

라플라시안(Laplacian) 연산자(계속) 1차 미분의 회선 마스크에는 행과 열 방향의 회선 마스크가 있으나, 2차 미분의 라플라시안 회선 마스크에는 행과 열 방향이 합쳐져 한 개만 있음. 회선 마스크의 합은 0

[실습하기 7-3] 라플라시안 처리 프로그램 ResourceView 창에서 [Menu]-[IDR_IMAGETYPE] 더블클릭 → 메뉴 추가 [MFC ClassWizard] 대화상자를 이용해 추가된 메뉴에서 라플라시안 처리를 실행하는 함수 추가 Doc 클래스에 다음 프로그램 추가

[실습하기 7-3] 라플라시안 처리 프로그램 void CImageProcessingDoc::OnLaplacian() { int i, j; double LaplacianMask[3][3] = {{0., 1., 0.}, {1., -4., 1.}, {0., 1., 0.}}; m_Re_height = m_height; m_Re_width = m_width; m_Re_size = m_Re_height * m_Re_width; m_OutputImage = new unsigned char [m_Re_size]; m_tempImage = OnMaskProcess(m_InputImage, LaplacianMask); // m_tempImage = OnScale(m_tempImage, m_Re_height, m_Re_width); for(i=0 ; i< m_Re_height ; i++){ for(j=0 ; j< m_Re_width ; j++){ if(m_tempImage[i][j] > 255.) m_tempImage[i][j] = 255.; if(m_tempImage[i][j] < 0.) m_tempImage[i][j] = 0.; } m_OutputImage[i* m_Re_width + j] = (unsigned char)m_tempImage[i][j];

[실습하기 7-3] 라플라시안 처리 프로그램 View 클래스에 다음 프로그램 추가 void CImageProcessingView::OnLaplacian() { CImageProcessingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->OnLaplacian(); Invalidate(TRUE); }

[실습하기 7-3] 라플라시안 처리 프로그램 프로그램 실행 결과 영상 잡음 성분에 매우 민감하여 실제보다 더 많은 에지를 검출하므로 에지의 크기를 서로 비교하여 임계 값 이상일 때만 에지로 정의

LoG(Laplacian of Gaussian) 연산자 잡음에 매우 민감한 라플라시안 마스크를 이용한 에지 검출기의 문제점을 해결하기 위해 만듦. 가우시안 스무딩을 수행하여 잡음 제거 과정을 거친 뒤 에지를 강조하려고 라플라시안을 이용함. LoG 연산자 공식

LoG(Laplacian of Gaussian) 연산자(계속)

LoG(Laplacian of Gaussian) 연산자(계속) 가우시안 스무딩 필터링을 먼저 수행하고 그 결과 값에 라플라시안을 수행하는 방법 LoG 필터에 해당하는 선형 필터링을 한꺼번에 수행하는 방법

DoG(Difference of Gaussians) 연산자 계산 시간이 많이 소요되는 LoG 연산자의 단점을 보안하기 위해 등장 각 가우시안 연산에 분산 값을 서로 다르게 주어 이 차를 이용해 에지 맵을 구함 DoG 공식 장점 σ1과 σ2의 값을 변화시켜 검출할 에지의 넓이를 조절할 수 있음. σ1 /σ2=1.6의 값이 있는 비율이 LoG와 가장 비슷한 결과를 나타냄.

DoG(Difference of Gaussians) 연산자(계속)

DoG(Difference of Gaussians) 연산자(계속)

컬러 영상에서의 에지 검출 RGB 컬러 모델을 사용할 경우 HSI 컬러 모델을 사용할 경우 검출된 각 성분의 에지를 합치는 공식 HSI 컬러 모델을 사용할 경우 RGB 컬러 모델을 HSI 컬러 모델로 변환하여 명도값 (I)에서만 회선을 적용한 뒤 RGB 컬러 모델로 변경하여 컬러 영상의 에지를 얻음.

컬러 영상에서의 에지 검출(계속)

에지 간단한 에지 추출 기법 유사 연산자 차 연산자 임계 값을 이용한 에지 처리 1차 미분 회선 마스크 디지털 영상의 밝기가 낮은 값에서 높은 값으로 또는 높은 값에서 낮은 값으로 변하는 지점(=경계선) 간단한 에지 추출 기법 연산 자체가 간단하고 빠름. 유사 연산자와 차 연산자, 임계 값 처리 방법이 대표적 유사 연산자 가장 단순한 방법으로, 일련의 화소를 감산한 값에서 최대값을 결정하여 에지를 검출 차 연산자 계산 시간이 오래 걸리는 유사 연산자의 단점 해결 위해 제시 화소당 뺄셈연산이 네 개만 사용되어서 빠른 연산 수행 가능 임계 값을 이용한 에지 처리 보통 에지 추출기와 함께 사용되어 강한 에지는 강하게, 약한 에지는 약화시키는 역할 수행 1차 미분 회선 마스크 종류가 다양 로버츠, 소벨, 프리윗 마스크가 대표적

Compass Gradient Operator 에지를 좀더 정확하게 검출하려고 다른 방향의 마스크 여덟 개를 이용하여 에지를 검출하는 방법 2차 미분 에지 검출기 라플라시안, LoG, DoG 등이 대표적 라플라시안 에지 검출기 에지 검출 성능이 우수하여 다른 연산자보다 더욱 더 두드러지게 에지 추출 에지의 방향은 검출하지 못하고, 잡음 성분에 매우 민감하여 실제보다 많은 에지를 검출. LoG 잡음에 민감한 라플라시안의 문제를 해결하기 위해 만듦. 라플라시안을 적용하기 전에 가우시안 스무딩을 수행하여 잡음을 제거한 뒤 에지를 강조하는 데 라플라시안을 이용 계산 시간이 많이 소요됨. 계산 시간이 많이 소요되는 LoG의 단점 보완 위해 등장

컬러 영상에서의 에지 검출 RGB 컬러 모델 사용시: R, G ,B 각각에서 에지 검출을 위한 회선을 수행 → 검출된 에지를 다시 합침. HSI 컬러 모델 사용시: RGB 모델을 HSI 모델로 변환하여 명도값 (I)에만 회선을 적용 → RGB 모델로 변경해서 컬러 영상의 에지를 구함.