노이즈 제거

노이즈 제거는 다양한 이미지 처리 작업에 적용할 수 있습니다. 컨볼루션 섹션에 설명된 가장자리 감지 커널 외에도 Earth Engine에는 여러 가지 특수화된 가장자리 감지 알고리즘이 있습니다. 카니 에지 감지 알고리즘(Canny 1986) 은 4개의 별도 필터를 사용하여 대각선, 세로, 가로 가장자리를 식별합니다. 계산은 수평 및 수직 방향의 1차 미분 값을 추출하고 경사도 크기를 계산합니다. 크기가 더 작은 그라데이션은 억제됩니다. 고주파 노이즈를 제거하려면 원하는 경우 가우스 커널로 이미지를 사전 필터링합니다. 예를 들면 다음과 같습니다.

코드 편집기 (JavaScript)

// Load a Landsat 8 image, select the panchromatic band.
var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8');

// Perform Canny edge detection and display the result.
var canny = ee.Algorithms.CannyEdgeDetector({
  image: image, threshold: 10, sigma: 1
});
Map.setCenter(-122.054, 37.7295, 10);
Map.addLayer(canny, {}, 'canny');

threshold 매개변수는 최소 기울기 크기를 결정하고 sigma 매개변수는 고주파 노이즈를 제거하는 가우시안 사전 필터의 표준편차 (SD)입니다. Earth Engine은 가장자리 감지기에서 선 추출을 위해 Hough 변환(Duda and Hart 1972)을 구현합니다. 이전 예를 계속하여 다음을 사용하여 Canny 검출기에서 선이 있는 영역을 추출합니다.

코드 편집기 (JavaScript)

// Perform Hough transform of the Canny result and display.
var hough = ee.Algorithms.HoughTransform(canny, 256, 600, 100);
Map.addLayer(hough, {}, 'hough');

Earth Engine의 또 다른 전문 알고리즘은 zeroCrossing()입니다. 제로 크로싱은 오른쪽, 하단 또는 대각선 오른쪽 하단 픽셀의 부호가 반대인 픽셀로 정의됩니다. 이러한 픽셀 중 부호가 다른 픽셀이 있으면 현재 픽셀이 1 (제로 크로싱)로 설정되고, 그렇지 않으면 0으로 설정됩니다. 가장자리를 감지하기 위해 이미지 2차 미분의 추정치에 제로 크로싱 알고리즘을 적용할 수 있습니다. 다음은 zeroCrossing()를 사용하여 가장자리 감지를 실행하는 방법을 보여줍니다.

코드 편집기 (JavaScript)

// Load a Landsat 8 image, select the panchromatic band.
var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8');
Map.addLayer(image, {max: 12000});

// Define a "fat" Gaussian kernel.
var fat = ee.Kernel.gaussian({
  radius: 3,
  sigma: 3,
  units: 'pixels',
  normalize: true,
  magnitude: -1
});

// Define a "skinny" Gaussian kernel.
var skinny = ee.Kernel.gaussian({
  radius: 3,
  sigma: 1,
  units: 'pixels',
  normalize: true,
});

// Compute a difference-of-Gaussians (DOG) kernel.
var dog = fat.add(skinny);

// Compute the zero crossings of the second derivative, display.
var zeroXings = image.convolve(dog).zeroCrossing();
Map.setCenter(-122.054, 37.7295, 10);
Map.addLayer(zeroXings.selfMask(), {palette: 'FF0000'}, 'zero crossings');

캘리포니아 샌프란시스코 공항 근처 지역의 제로 크로싱 출력은 그림 1과 같이 표시됩니다.

제로 교차 SFO
그림 1. 캘리포니아 샌프란시스코 공항 근처 지역의 Landsat 8 전천후 밴드(배경)와 함께 제로 크로싱 출력(빨간색)(오른쪽)