뾰족한 선택을위한 이미지 처리 방법


11

3D 이진 이미지 로 입력하고 아래에 선호하는 출력이 있습니다.

입력:

입력

기본 출력 :

산출

위의 선호 출력과 같이 뾰족한 물체 만 남겨 두려면 어떤 이미지 처리 방법을 찾아야합니까?


3D 이진 이미지 는 무엇을 의미 합니까? 이미지를 개별 부분으로 쉽게 분할 할 수 있습니까?
bjoernz

3D는 단층 이미지라는 의미입니다.
Karl

1
spiky대상이 무엇인지 설명 할 수 있습니까 ? 실제로 그것을 뾰족한 것으로 부르는 것은 무엇입니까? 뾰족한 물체를 발견하는 주요 특징은 무엇입니까?
Dipan Mehta

이 경우 뾰족한 물체는 매끄럽지 않고 3D 영역으로 가시가 모양입니다.
Karl

답변:


19

"뾰족한 물체"의 경계에 더 많은 모서리가 있으므로 한 가지 방법은 모서리 감지기 를 조정하는 것 입니다.

예를 들어, 거리 변환 이미지의 구조 텐서 (아래 수학 코드)의 결정 요인을 계산했습니다.

여기에 이미지 설명을 입력하십시오

히스테리시스를 사용하여 이진화하면이 이미지가 생성되며, 선택한 분할 알고리즘의 시작점이 좋습니다.

여기에 이미지 설명을 입력하십시오

Mathematica 코드 ( src게시 한 소스 이미지)

처음에는 입력 이미지의 거리 변환을 계산합니다. 이렇게하면 경계가 아닌 전체 객체 영역에 대비가 생겨 전체 객체를 감지 할 수 있습니다.

dist = ImageData[DistanceTransform[src]];

다음으로 구조 텐서 의 구성 요소를 준비합니다 . 가우스 유도체에 대한 필터 크기는 5 인 경우 윈도우 크기는 20입니다.

gx = GaussianFilter[dist, 5, {1, 0}];
gy = GaussianFilter[dist, 5, {0, 1}];
gx2 = GaussianFilter[gx^2, 20];
gxy = GaussianFilter[gx*gy, 20];
gy2 = GaussianFilter[gy^2, 20];   

각 픽셀에서 코너 필터를 계산하기 위해 구조 텐서의 기호 결정기에 간단히 연결합니다.

corners = Det[{{dx2, dxy}, {dxy, dy2}}] /. {dx2 -> gx2, dxy -> gxy, dy2 -> gy2};

기본적으로 다음과 같습니다.

corners = gx2 * gy2 - gxy * gxy;

이것을 이미지로 변환하고 0.1 범위로 스케일링하면 위의 코너 검출기 이미지가 생성됩니다.

마지막으로 올바른 임계 값으로 이진화하면 최종 이진 이미지가 생성됩니다.

MorphologicalBinarize[Image[corners], {0.025, 0.1}]

매우 멋진 답변입니다! =)
Phonon

당신의 대답은 훌륭합니다. 나는 그들로부터 많은 것을 배웁니다.
Andrey Rubshtein
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.