나는 '1'(디스크)의 구멍으로 구성된 50x50의 2D 매트릭스를 가지고 있으며 나머지 값은 0입니다. (행렬은 2 진수입니다). 아래 그림과 같이 객체의 윤곽선에있는 위치를 반환하고 싶습니다. 필자는 "imcontour"명령을 시도했습니다. (필자의 경우는 이진 이미지이기도합니다.) 좋지만 윤곽의 주어진 위치 중 일부는 행렬의 크기보다 큽니다. 즉, 행렬의 인덱스가 아닌 픽셀 단위로 위치를 제공 할 수 있습니다. "contour"와 "boundary"도 시도했지만 헛된 것이 었습니다. 아이디어가 있으십니까?
matlab에서 2D 매트릭스의 윤곽선 위치를 반환 하시겠습니까?
답변
내가 바로 당신의 매트릭스에 비 제로 값의 인덱스 번호를 추출 (M)를 위치를 추출하고 공업 시도 = 찾기 (M)을 [X, Y]를 시도 = 찾을 수있어합니다.
세제 안에 '1'이 있고 '0'밖에 있습니다. 그림은 단지 윤곽선입니다. –
그러면 경계를 찾고 있습니다. 그냥 bwperim 기능을 사용하십시오. [x, y] = 찾기 (bwperim (M)) – Ozcan
고마워요! 그게 내가 찾고 있던거야. 나는 "가장자리"인 다른 해결책을 찾았지만 "bwperim"이 더 좋습니다. –
'imcontour'가 작동해야합니다. 확실히 코드에 실수가 있습니다. 최소한의 코드 예를 제공하십시오. – Ratbert