2.3 Spacial filtering

Eden.Yang·2023년 12월 6일
0

Computer VIsion

목록 보기
8/22

Spatial Filtering (공간 필터링)

공간 필터링은 이미지나 신호 처리에서 특정 위치에서 주변 픽셀들에 대한 연산을 수행하는 기술입니다. 주로 영상에서 노이즈 제거, 경계 검출, 이미지 강화 등의 작업을 수행하는 데 사용됩니다. 이러한 필터는 커널 또는 마스크라고 불리는 작은 행렬로 표현되며, 이미지에 이 커널을 이동시켜가며 연산을 수행합니다.

기본적인 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 크기의 평균 필터를 적용합니다.

다양한 Spatial Filtering 연산:

1. 평균 필터 (Average Filter):

평균 필터는 이미지의 각 픽셀을 주변 픽셀의 평균값으로 대체하여 이미지를 부드럽게 만듭니다. 이는 이미지에서 높은 주파수 성분을 제거하여 노이즈를 감소시키는 효과를 가지고 있습니다.

2. 가우시안 필터 (Gaussian Filter):

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

3. 라플라시안 필터 (Laplacian Filter):

라플라시안 필터는 이미지의 높은 주파수 성분을 강조하여 경계를 감지합니다. 이미지에서의 라플라시안은 이미지에서의 2차 도함수를 나타내며, 이를 이용하여 경계를 감지하고 강조할 수 있습니다.

4. 소벨 필터 (Sobel Filter):

소벨 필터는 이미지에서의 경계를 감지하기 위해 수평 및 수직 방향으로 기울기를 계산합니다. 이 필터는 이미지에서의 에지를 찾아내는 데 효과적이며, 에지의 방향을 알 수 있습니다.

5. 미디언 필터 (Median Filter):

미디언 필터는 픽셀 주변의 중간값으로 각 픽셀을 대체하여 소금-후추 노이즈를 감소시킵니다. 특히 이미지에서 발생하는 특이값(이상값)을 제거하는 데 효과적으로 사용됩니다.

이러한 필터들은 주로 이미지 프로세싱에서 사용되어 이미지의 특정 특징을 감지하거나 노이즈를 감소시키는 등의 다양한 작업에 활용됩니다. 필터의 크기, 가중치, 방향 등을 조절하여 원하는 결과를 얻을 수 있습니다.

profile
손끝에서 땅끝으로, 골방에서 열방으로

0개의 댓글