그레이 스케일 이미지 (uint16)를 흑백 이미지로 변환하려고합니다. 이미지 I 다음그레이 스케일 이미지를 BW 이미지로 변환
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
나는 이미지 I_bw 결과는 다음과 같이 가능성이 이해가 안 돼요 graythresh (I)을 호출 한 후 0으로 설정하십시오.
편집 : 원본 이미지가 포함 된 .mat 파일을 업로드했습니다. file
그레이 스케일 이미지 (uint16)를 흑백 이미지로 변환하려고합니다. 이미지 I 다음그레이 스케일 이미지를 BW 이미지로 변환
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
나는 이미지 I_bw 결과는 다음과 같이 가능성이 이해가 안 돼요 graythresh (I)을 호출 한 후 0으로 설정하십시오.
편집 : 원본 이미지가 포함 된 .mat 파일을 업로드했습니다. file
이유는 : 다음 코드 레벨의 작동 = 0
load Image.mat
I = z;
figure;imshow(I, []);
[level, ] = graythresh(I); %level = 0
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
:
가 double
I
로 변환하고,이 범위로 정상화 [0, 1].
load Image.mat
I = z;
figure;imshow(I, []);
I = double(I)/double(max(I(:))); %Convert to double, and divide by maximum value - set range to [0, 1].
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
:
load Image.mat
I = z;
figure;imshow(I, []);
I = double(I)/double(max(I(:))); %Convert to double, and divide by maximum value - set range to [0, 1].
I = uint16(I*2^16-1); %Expand range to [0, 2^16-1] and convert to uint16.
[level, ] = graythresh(I);
I_bw = im2bw(I, level);
figure;imshow(I_bw);impixelinfo
원래 코드 레벨 = 0, 더 조사가 필요 이유를 이해 ...
@Alessandro 답변을 업데이트했지만 수준 = 0 인 이유를 여전히 모릅니다. – Rotem
정답입니다. 감사합니다! – Alessandro
가 있습니까 올바른 '나'를 사용하고 있다는 것을 확신합니까? 당신이 제공 한 이미지를 사용하여 나는 '0.5137'의 레벨을 얻습니다 :'I = imread ('http://i.stack.imgur.com/Vch35.jpg '); level = graythresh (I); im2bw (I, 수준); ' – Suever
나는 확실하다. 원시 버전이 아닌 .JPG 버전을 업로드했습니다. .fig 파일을 업로드 할 수 있습니까? – Alessandro
그렇다면 어떻게 테스트 할 수 있습니까? 함께 작업하는 이미지를 업로드하십시오. – Suever