2014-07-10 6 views
0

큰 프로그램의 일부로 이미지를 바이너리로 변환 한 다음 regionprops 도구 상자를 사용하여 일부 정보를 얻어야합니다. 모든 그림에는 다른 색상의 배경에 대해 하나의 개체가 포함되어 있습니다. 그러나 감지되는 개체의 색상에 따라 이진 이미지의 개체는 흰색으로 바뀌고 배경은 검정색으로 바뀌며 그 반대도 마찬가지입니다. 개체가 검은 색으로 변하는 경우 프로그램의 나머지 부분은 버려집니다. 객체가 흰색 인 이미지 만 얻을 수있는 방법이 있습니까? 수동으로 각 이미지를보고 반전하는 것과는 대조적으로?바이너리 이미지의 어려움 (MATLAB)

+1

이것은 바이너리로 변환하는 데 사용하는 기능과 이미지의 가변성에 따라 다를 수 있습니다. 좀 더 많은 정보가 여기에 도움이 될 수 있습니다. – Trilarion

+0

기본 thresholding 함수 인 - graythresh와 im2bw를 사용합니다. – user2802349

+0

이미지에는 원 모양, 사각형, 정사각형 또는 삼각형 모양의 개체 이미지 하나만 포함됩니다. – user2802349

답변

2

개체가 이미지 가장자리에 닿지 않습니까? 그렇지 않은 경우 가장자리의 픽셀을 흰색으로 확인한 다음 색상을 뒤집으십시오.

편집 : B를 가정하면 코드에 다음 행을 추가, 바이너리 이미지 : 또한 객체를 가정 대부분을 갈 수

B = logical(B); %ensuring it's in "logical" format 
if(B(1, 1) == true) 
    B = ~B; 
end; 
+0

감사! 이것은 나를 위해 대부분의 경우에 작동해야합니다! – user2802349

+0

나의 기쁨 :) – LordViaderko

1

소수에 대부분의 경우이고 배경이 대부분입니다.

B = logical(B); 
if sum(B(:)) > numel(B)/2 
    B = ~B; 
end