Spatial Filtering (공간 필터링)
공간 필터링은 이미지나 신호 처리에서 특정 위치에서 주변 픽셀들에 대한 연산을 수행하는 기술입니다. 주로 영상에서 노이즈 제거, 경계 검출, 이미지 강화 등의 작업을 수행하는 데 사용됩니다. 이러한 필터는 커널 또는 마스크라고 불리는 작은 행렬로 표현되며, 이미지에 이 커널을 이동시켜가며 연산을 수행합니다.
예를 들어, 3x3 크기의 평균 필터는 주변 8개 픽셀의 평균값을 현재 픽셀에 할당하여 이미지를 부드럽게 만듭니다. 이는 이미지의 높은 주파수 성분을 제거하는 효과가 있습니다.
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 이미지 로드
Mat image = imread("example.jpg", IMREAD_GRAYSCALE);
// 3x3 크기의 평균 필터 생성
Mat kernel = Mat::ones(3, 3, CV_32F) / 9.0;
// 필터 적용
Mat result;
filter2D(image, result, -1, kernel);
// 결과 표시
imshow("Original Image", image);
imshow("Filtered Image", result);
waitKey(0);
return 0;
}
이 예제에서는 filter2D 함수를 사용하여 이미지에 3x3 크기의 평균 필터를 적용합니다.
평균 필터는 이미지의 각 픽셀을 주변 픽셀의 평균값으로 대체하여 이미지를 부드럽게 만듭니다. 이는 이미지에서 높은 주파수 성분을 제거하여 노이즈를 감소시키는 효과를 가지고 있습니다.

가우시안 필터는 가우시안 함수를 사용하여 중심에 가까운 픽셀에 더 높은 가중치를 주는 방식으로 이미지를 부드럽게 만듭니다. 이 필터는 주로 높은 주파수 성분을 제거하면서도 더 자연스러운 효과를 제공합니다.

라플라시안 필터는 이미지의 높은 주파수 성분을 강조하여 경계를 감지합니다. 이미지에서의 라플라시안은 이미지에서의 2차 도함수를 나타내며, 이를 이용하여 경계를 감지하고 강조할 수 있습니다.
소벨 필터는 이미지에서의 경계를 감지하기 위해 수평 및 수직 방향으로 기울기를 계산합니다. 이 필터는 이미지에서의 에지를 찾아내는 데 효과적이며, 에지의 방향을 알 수 있습니다.
미디언 필터는 픽셀 주변의 중간값으로 각 픽셀을 대체하여 소금-후추 노이즈를 감소시킵니다. 특히 이미지에서 발생하는 특이값(이상값)을 제거하는 데 효과적으로 사용됩니다.
이러한 필터들은 주로 이미지 프로세싱에서 사용되어 이미지의 특정 특징을 감지하거나 노이즈를 감소시키는 등의 다양한 작업에 활용됩니다. 필터의 크기, 가중치, 방향 등을 조절하여 원하는 결과를 얻을 수 있습니다.