Computer/ETC Updated: 2013. 5. 7. 16:55 hwaya.

회선

반응형

이산회선은 영상 스무딩, 영상강화, 에지검출 등의 효과를 위해서 빈번하게 사용되는 영상처리 기법이다.

회선기법은 원시 화소에서 이웃한 화소들 각가에 가중치를 곱한 합이라고 할수 있다. 가중치는 회선 마스크 혹은 회선 커널이라고 하는 작은 행렬로 결정된다. 일반적으로 행렬의 차원은 원시화소가 중앙에 위치하도록 홀수를 사용한다. 중앙의 위치는 출력 화소의 위치에 대응된다.


회선 윈도우라고 하는 슬라이딩 윈도우는 입력 영상의 각 화소들에 대하여 중앙에 위치하여 새로운 출력 화소들을 생성한다. 새로운 화소 값은 이웃한 화소들이 가진 값과 이에 대응하는 마스트의 가중치를 곱한 후, 곱해진 값들을 더함으로써 만들어진다.


생성된 화소들을 새로운 영상의 적절한 위치에 배정하는 것은 매우 중요한 작업이다. 기존의 화소가 새로 생성된 화소에 의해 치환된다면, 치환된 화소는 이어지는 새로운 화소의 값을 계산하기 위해 사용된다. 이러한 것을 무한 임펄스 반응 시스템이라고 하며, 원하는 결과를 생성하지 못하게 된다.


회선 마스크에서 가중치의 합은 출력 영상의 모든 화소들의 밝기 값에 영향을 미친다. 많은 회선 마스크들은 계수들의 합이 1이 되도록 결정된다. 이 경우에, 회선된 영상은 원영상과 같은 평균 밝기값을 갖게 된다. 일부 회선 마스크(에지 검출에 사용되는 것과 같은)들은 음의 계수들을 가지며, 그들의 합은 0이 된다. 이러한 경우에는 음의 화소값들이 생성된다. 전형적으로, 새로 생성될 화소값에 일정한 상수(‘최대 밝기/2’와 같은)가 더해진다. 일정한 값을 더한 결과가 음수일 경우에는 그 화소값을 0으로 한다.


회선 함수를 구현할 때 갖게 될때 첫번째 의문은 영상의 경계는 어떻게 다룰 것인가 하는 것이다. 회선 윈도우가 영상의 (0.0) 위치에 그 중심이 높여질 때, 슬라이딩 윈도우는 그림 3.2와 같이 왼쪽 위의 끝 부분의 영상과 중첩된다. 영상의 바깥부분에 위치한 회선 계수들과 곱해지는 것은 어떤 값들인가? 이러한 문제를 해결하기 위한 방법은 몇 가지가 있다.


첫번째 해결방법은 회선 윈도우의 빈 셀들의 계수를 0으로 가정하는 것이다.

이것을 0 삽입이라고 한다. 결과 영상의 끝 부분이 영상의 나머지 만큼 중요할 경우에는 좋은 아이더이는 아니지만, 이러한 방법은 구현을 단순하게 한다.


두번째 해결 방법은 윈도우가 중첩되는 첫 위치에서 회선이 시작되도록 하는 것이다. 회선 마스크의 크기가 3x3일 경우(0.0) 위치의 화소에 윈도우의 중심 셀을 놓는 대신, (1.1) 위치의 화소에서 회선이 시작되도록 한다. 이것은 구현하기가 단순하며, 이 책에서는 이러한 방법으로 회선 코드를 작성하였다. 출력 영상에서 회선된 영상의 경계부분의 화소들은 입력 영상과 같은 해상도를 가진 영상을 생성하기 위해 복사된다.


다른 두 가지의 해결 방법은 회선하기 전에 원영상의 크기를 조정하는 작업이 요구된다. 영상의 크기를 조정하는 방법은 영상의 경계부분의 화소들을 복사하는 것이다. 죽, 33 마스크를 이용하여 영상의 상단, 좌우, 하단을 복사하는 방법이 있고, 또 다른 방법은 영상을 둘러싸는 것이다.


반응형

'Computer > ETC' 카테고리의 다른 글

운영체제의 주요 구성 기술  (0) 2014.03.27
Thread(스레드)  (0) 2014.03.27
항목4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자  (0) 2014.03.20
운영체제의 개요  (0) 2014.03.12
포인트 처리_XOR연산, 룩업테이블  (0) 2013.05.07
블러링 & 샤프닝  (0) 2013.05.07
RGB 변환 YCbCr  (0) 2013.05.07
DIB  (0) 2013.05.07

Table of Contents


EIGHTBOX
EIGHTBOX
hwaya.

programmer

🍋일상의 소소한 순간들부터 큰 꿈까지, 호기심을 만족시킬 다양한 카테고리를 담은 블로그 입니다. 그리고, 소소한 행동에 감동하며 기뻐하고 하루하루에 감사하는 사람🌵

Today Yesterday Total
최신글