래스터 노이즈 감소 및 에지 스무딩을 수행합니까?


22

이런 래스터 이미지가 있습니다래스터 이미지

고립 된 노이즈 포인트를 삭제하고 가장자리를 부드럽게하고 싶습니다 (예 : 흰색 단일 포인트와 엔티티의 가장자리가 매끄럽게 보이기를 원합니다). ArcGIS 또는 R에서 어떻게해야합니까?

셀 크기는 30 * 30입니다.

답변:


15

이러한 종류의 처리를 위해 형태 적 조작 ExpandShrink 가 작성되었습니다. "래스터"라이브러리가 너무 느리 므로 ArcGIS (또는 GRASS 또는 Mathematica )를 사용하십시오 R.


종종 매개 변수를 약간 실험하는 데 도움이됩니다. 이미지를 청소하는 데 필요한 확장 및 축소 정도를 결정해야합니다. 각 작업은 예리한 세부 사항을 부드럽게 만드는 경향이 있기 때문에 일반적으로 가능한 한 적은 작업을 수행하려고합니다. 다음은 "엔티티"에서 대부분의 세부 사항을 유지하면서 명백한 "노이즈"를 상당 부분 제거하는 시퀀스입니다. "확장"과 "축소"를 참조하여 모두 흰색 그들이 바깥쪽으로 성장하는 원인을 확장하고 흰색 영역으로 잠식에 원인을 검은 색 세포를 축소 그래서, 세포.

이미지 표

"차이"열은 각 단계에서 시작 이미지와 끝 이미지의 차이를 강조하기 위해 색상을 사용합니다. 흰색은 검은 색, 파란색은 검은 색은 주황색입니다.

더 큰 나머지 조각을 제거해야하는 경우 RegionGroup 을 사용 하여 해당 조각 을 식별 하는 것이 가장 좋으며 , 그런 다음 다시 분류를 통해 제거 할 수 있습니다. 이것은 처음부터 옵션 이었지만와 약간의 초기 청소 Expand하고 Shrink작업을 줄이고 원하는 스무딩을 제공합니다.


덧붙여서, Mathematica 명령을 사용 하여이 그림에서 8 개의 이미지를 만들기로 결정했습니다 .

i = Import["http://i.stack.imgur.com/umDg7.png"];
l = Dilation[k = Erosion[j = Dilation[i, 2], 3], 1];      (* This does all the work *)
delta = ColorCombine /@ {{i, j}, {j, k}, {k, l}, {i, l}}; (* Compares images *)

ArcGIS의 워크 플로우는 동일하지만 구문이 더 길어집니다. 을 실제로 사용 R하려면 "래스터"라이브러리를로드 focalFilter하고 확장 및 축소를 수행하는 함수를 작성하십시오. 그런 다음 약 1 분 정도 기다렸다가 작업을 실행하십시오.


안녕하세요! 마음에 들지 않으면 연락 정보를 보내 주시겠습니까? 나는 내 연구에서 당신을 인정하고 싶습니다. 감사! @whuber

GRASS에서 동등한 명령을 알고 있습니까?
Richard

1
@Richard GRASS에서 이러한 작업을 수행하는 창의적인 방법이 많이 있다고 확신하지만 r.neighbors 는 작업에 적합합니다.
whuber

12

Spatial Analyst Extension을 사용하면 일부 일반화 도구를 사용할 수 있습니다 . 그들 중 일부는 비슷한 작업을 수행하므로 원하는 결과를 얻으려면 몇 가지를 가지고 놀아야 할 수도 있습니다. 그러나 주요 필터 도구와 경계 정리 도구를 살펴 보겠습니다 .

다음은 이 두 도구의 개념에 대한 페이지 입니다.

R에서 이러한 작업을 수행하는 방법을 잘 모르겠지만 GRASS GIS를 사용하여 주요 필터를 수행하는 방법에 대한 게시물이 있습니다.


2

이것은 기본적으로 @ whuber의 대답에 대한 변형이며 Euclidian Distance를 사용하여 래스터 경계를 확장 및 축소하여 래스터의 날카로운 모서리를 부드럽게합니다. 유클리드 거리는 확장을 모방하지만 침입 / 수축에 음수 값을 도입 할 수는 없습니다. 비결은 Euclidian Distance 래스터의 부정을 취하고 성장시키는 반복적 인 프로세스를 개발하는 것입니다. 아래는 주어진 샘플 이미지의 단계와 설명을위한 스냅 샷입니다.

  1. 1 초만 유지하도록 래스터 재 분류

  2. 재 분류 된 래스터에 2 셀 거리 (이 경우 60 미터)에 대한 유클리드 거리 적용

  3. Reclassify (값이있는 셀은 NODATA를 얻고 NODATA는 1로 바)) 또는 Raster Calculator의 Con 및 IsNull 연산자를 사용하여 확장 된 래스터 의 음수를 가져옵니다.

  4. 동일한 거리 (60m)로이 네거티브 래스터에 다시 유클리드 거리를 적용합니다

  5. 위에서 주어진 동일한 프로세스를 수행하여 부정적인 점을 취하십시오.

  6. 이 래스터에서 래스터 계산기 또는 재 분류를 사용하여 NODATA 셀을 0에 할당하여 샘플 래스터의 원래 값으로 되돌립니다.

수축유클리드 거리 확장

확장 및 축소유클리드 거리

참고 : 녹색은 처리 된 셀을 나타냅니다 (문제의 흰색 셀)

유클리드 거리의 장점은 날카로운 모서리를 부드럽게하는 빗변 범위를 통해 각 셀에서 적절한 거리를 차지한다는 것 입니다. 반면에 확장 및 축소 도구의 셀 매개 변수 수는 모든 방향에 대해 동일한 수의 셀을 처리하여 가장자리와 같은 경계 상자를 생성하므로 가장자리 / 코너를 지나치게 일반화합니다.

그러나 주요 문제는 확장 / 축소만큼 노이즈를 성공적으로 제거하지 못하며 응답보다 약간 더 깁니다.


누군가가이 일을하고 GRASS / QGIS을 사용하기 위해 - 당신은 r.grow를 사용할 수 있으며, 음의 유클리드 거리 다음에, 긍정적 인 유클리드 거리에 의해 성장
srha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.