이미지처리에서 샘플링이란?
샘플링(=표본화)은 연속 이미지를 개별 픽셀로 나누는 것입니다. 픽셀(=화소) 측면에서 생각하면 샘플링은 연속 이미지를 128 부분으로 나누는 것입니다. 예를 들어 유효 시야의 40cm인 카메라 이미지를 128x128 matrix로 설정하면 1픽셀은 40cm/128=0.3125cm가 됩니다. 이는 "1픽셀당 0.3125cm로 스캔된 이미지"라고 할 수도 있으며 "샘플링 간격이 0.315cm인 이미지" 또는 "128x128에서 샘플링된 이미지"라고 할 수 있습니다. 어쨌든, 샘플링은 분할에 관한 것입니다.
1 픽셀 0.315cm는 *공간 주파수 측면에서 "1/0.315 = 3.17 cycles/cm"이며 이를 샘플링 주파수라고 합니다. 이 의미는 "1cm마다 3.15회 샘플링을 한다"가 됩니다.
디지털 신호는 샘플링 주파수의 1/2 주파수인 아날로그 신호까지만 표현할 수 있기 때문에 여기서 샘플링 주파수는 3.17cycles/cm이므로 3.17/2=1.585 cycles/cm의 아날로그 신호만 나타낼 수 있음을 의미합니다. 이 샘플링 정리에 반하는 고주파 구성 요소가 실제 이미지에 포함되면 원본 아날로그 이미지에 포함되지 않은 저주파 구성 요소가 디지털 이미지에 나타나게 되는데 이를 *에일리어싱(aliasing)이라고 합니다.
샘플링에 의해서 가로 방향의 M개, 세로 방향의 N개 픽셀의 디지털 이미지가 만들어졌을 때, 그 이미지를 MxN 사이즈의 이미지라고 합니다. 픽셀 수가 많을수록 이미지는 정밀해지기 때문에 *해상도라고도 합니다.
용어정리
*공간 주파수(Spatial Frequency) : 공간 영역 상에서 화소 밝기의 변화율을 나타내는 것으로 밝기가 얼마나 빨리 변화하는가에 따라 고주파 영역과 저주파 영역으로 분류합니다. 고주파 영역은 밝기가 빠르게 변화하는 경계 부분이나 객체의 모서리 부분을 의미하며, 저주파 영역은 밝기가 거의 변화하지 않는 영역으로 배경이나 객체의 내부에 많이 존재합니다. 주파수 처리를 통해 고주파와 저주파로 구분이 가능하다면 고주파 성분을 제거하여 경계가 흐려진 영상을 만들거나 저주파 성분을 제거하여 경계나 모서리만 포함한 에지 영상을 만들어 낼 수 있습니다.
*에일리어싱(aliasing) : 아날로그 신호를 디지털 신호로 변환할 때 샘플링 주파수 fs의 1/2 크기의 주파수만 관측할 수 있습니다. 이 주파수를 *나이퀴스트 주파수라고 하는데, 이 나이퀴스트 주파수를 넘은 진동은 저주파수로 처리됩니다. 나이퀴스트 주파수를 넘은 고주파수 진동을 저주파수로 처리해 버리는 것을 에일리어싱(반환 잡음)이라고 합니다.
*나이퀴스트(Nyquist) 정리 : 모든 신호는 그 신호에 포함된 가장 높은 진동수의 2배에 해당하는 빈도로 일정한 간격으로 샘플링하면 원래의 신호로 복원할 수 있다는 샘플링 이론입니다. 디지털 신호를 아날로그 신호로 복원 시 양자화 오차 때문에 차이가 발생하게 됩니다. 이때 아날로그 신호의 유실 없이 복원되기 위해서 얼마만큼의 샘플링을 해야 하는지가 나이퀴스트 주파수입니다.
마무리하며,
신호는 이미지 외에도 소리 등 다양하게 존재합니다만, 포스팅에서는 이미지 처리, 영상신호처리 샘플링에 관련지어 설명을 하게 되었습니다. 중간에 어려운 용어들이 몇몇 있어 가볍게 정리를 해두었으나 그럼에도 처음 접할 때는 직관적으로 어려움이 있을 것으로 생각됩니다. 에일리어싱과 나이퀴스트는 수학적으로 이해하는 것에 대해서는 추후에 정리하여 학습할 수 있는 자료를 만들도록하겠습니다.
추가로 나이퀴스트 정리와 에일리어싱 관련해서 직관적으로 이해하기 좋은 설명 자료가 있어 링크를 남깁니다. 처음 접하시거나 포스팅의 내용이 어렵게 느껴지셨다면 참고자료1의 영상을 직접 듣고 직관적으로 느끼고 참고자료2의 포스팅을 일고 다시 이 포스팅을 읽어보시면 한결 이해가 수월하실 것 같습니다.
*참고자료1 : https://www.youtube.com/watch?v=aY42-xCsoRE
*참고자료 2 : https://evan-moon.github.io/2019/07/10/javascript-audio-waveform/
댓글