이미지의 텍스처 감지 및 영역 속성


9

해결하려는 흥미로운 문제가 있습니다. 예를 들어 두 개의 텍스처 (A와 B)를 포함하는 흑백 이미지가 있다면 개별 텍스처를 완전히 덮을 경계의 픽셀 값을 알고 싶습니다.

이미지에서 템플릿 (범례)의 위치 클러스터를 제공하는 상호 상관 관계를 사용하려고 생각했지만 경계의 픽셀 값을 얻는 데 사용할 수있는 방법이 있습니까 (일반적으로 불규칙합니다)? 또한 이것을 수행하는 다른 더 좋은 방법이 있습니까?

실제 사례는 1 년에 3 단계의 강우량을 보여주는지도에서 강우량 지역을 탐지하는 것입니다. 각 레벨에는 범례에있는 텍스처가 할당되며, 동일한 이미지에서 텍스처를 일치시키는 데 사용됩니다.


4
실제로 시도한 예제와 일부 예비 솔루션을 공유 한 경우 유용합니다.
Ivo Flipse

3
귀하가하는 일을 이해하기 위해 일부 예시 이미지를 확실히 업로드하십시오. 어떤 지역은 견고하고 다른 지역은 교차 부화처럼? nps.gov/sagu/naturescience/images/…
endolith

matlab이있는 경우 이미지 처리 도구 상자를 사용할 수 있습니다. 그렇지 않은 경우 웹 사이트는 여전히 bwconncomp 함수와 같이 사용하려는 표준 알고리즘에 대한 좋은 개요를 제공합니다 .
Mr. White

답변:


1

간단한 과정은 다음과 같습니다.

  1. 이미지의 각 영역에 텍스처 측정 값을 할당하십시오.
  2. 영역 레이블링 / 연결 알고리즘 (또는 영역 증가 알고리즘)을 사용하여 동일한 텍스처 측정 값을 가진 인접 영역을 결합하십시오.
  3. 각 영역의 윤곽을 추적하기 위해 간단한 가장자리 추적 알고리즘을 구현하십시오.

Law 's Texture Measures는 이미지에서 텍스처를 결정하는 데 오래되었지만 여전히 유용한 기술이므로 이미지 전체에서 텍스처 A와 텍스처 B를 구별하기에 충분할 수 있습니다. Wikipedia 기사의 "Lawn Texture Energy Measures"섹션을 참조하십시오.

http://en.wikipedia.org/wiki/Image_texture

첫 번째 단계로, 모든 텍스처 측정 값을 계산하고 어떤 특정 측정 값 (예 : Edge 또는 Spot)을 사용하여 한 텍스처를 다른 텍스처와 가장 쉽게 구별 할 수 있는지 결정하십시오. (일부 그림을 게시하면 질감 측정을 식별하는 데 도움이 될 수 있습니다.)

텍스처 A와 B가 두 개 뿐인 경우 전경과 배경으로 처리 할 수 ​​있으며 표준 지역 레이블 알고리즘이 작동합니다. 처리중인 상황을보다 쉽게 ​​확인할 수 있도록 A 텍셀 (텍스처 요소, 작은 텍스처 덩어리)을 컬러 화이트에, B 텍셀을 컬러 블랙에 할당하여 새 이미지를 생성 할 수 있습니다. 영역 레이블링 및 / 또는 윤곽선 추적 알고리즘은 연결된 흰색 및 검은 색 영역을 찾습니다. OpenCV의 findContours () 함수가 잘 작동합니다.

http://en.wikipedia.org/wiki/Connected-component_labeling

동일한 Wikipedia 기사에는 기존의 멀티 패스 알고리즘과 단일 패스 알고리즘이 모두 포함되어 있습니다. 여기에 설명 된 단일 패스 알고리즘을 구현하지 않았지만 Chen과 Chang의 "컨투어 추적 기술을 사용하는 구성 요소 레이블 알고리즘"에 설명 된 단일 패스 알고리즘으로 작업했습니다. Chen과 Chang의 논문은 또한 신속하게 구현할 수있는 표준 윤곽 추적 알고리즘을 설명합니다.

텍스처가 두 개 이상인 경우 텍스처를 색상으로 다시 매핑 한 후 유역 또는 평균 이동 알고리즘을 사용하여 영역을 함께 클러스터링 할 수 있습니다 . 텍스처에서 색상으로 다시 매핑 할 필요는 없지만 프로세스를보다 쉽게 ​​디버그하고 이해할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.