1

bwdistimhmin 이미지가 완전히 검게 표시되는 이유는 무엇입니까? 작업 공간에서 두 행렬을 확인하면 값이 잘 보입니다. 이것을 확인하기 위해이 코드를 Matlab에서 실행할 수 있습니다. 예상되는 결과는 연결된 각 구성 요소의 중심이 낮은 강도를 갖는 반면 연결된 구성 요소의 가장자리는 높은 강도를 갖는 회색 음영 이미지입니다. 가장자리의 픽셀 거리는 중심으로부터 멀리 떨어져 있으며 거리 값이 높습니다. 거리 값이 강도 인 것으로 간주되면 에지에서 높은 강도가 고려됩니다.거리 변환 'bwdist` 출력이 완전히 검은 색입니다

0이 단순히 배경 일 때 거리 변환 된 연결 요소로 1을 생각해보십시오. 배경을 0으로하고 싶습니다.

image = zeros(5,5); 
image(2,2) = 1; 
image(4,4) = 1; 

binary = im2bw(image,graythresh(image)); 
distance = bwdist(binary,'cityblock'); 
hminima = imhmin(distance,5); 

figure; imshow(binary) 
figure; imshow(distace) 
figure; imshow(hminima) 

필요한 결과는 다음과 같습니다.

enter image description here

+0

왜 '거리'가 음수입니까? – beaker

+0

@beaker 질문을 편집했습니다. 'bwdist (~ binary, 'cityblock') 뒤에 거리가 변환 된 이미지는 어떤 이유에서 이진 것과 정확히 똑같아 보입니다. – Senyokbalgul

+0

그것이 계산 된 거리이기 때문입니다. 당신이 성취하고자하는 것을 묘사하고 당신이 얻길 기대하는 결과가 있다면 그것은 도움이 될 것입니다. – beaker

답변

1

내가 질문을 이해하거나 아니에요 경우 나도 몰라,하지만 당신이

figure; imshow(distace) 

이미지처럼 볼이 라인을 원하는 가장 최근 편집에서 보인다 게시했습니다. 이를 위해 imshow는 0을 검정, 1을 흰색으로 매핑하여 회색 음영 이미지를 생성한다는 것을 이해해야합니다. 당신은 당신이 대신 두 점의 그레이 스케일 이미지를 얻을 것이다 다음 코드를

scaledDistance = distance/max(distance(:)); 
figure; imshow(scaledDistance) 

를 사용하는 경우의 예에서, distance는 0에서 5로 변화한다. 이 코드를 사용하는 경우 :

scaledDistance = distance/max(distance(:)); 
figure; imshow(1 - scaledDistance) 

게시 한 이미지와 비슷하게 반전됩니다.

+0

예! 이것이 필요한 것입니다. 감사. – Senyokbalgul