2014-01-21 5 views
1

저는 Matlab을 처음 사용하여 tif를 가져 와서 여러 임계 값을 찾아 적용하려고합니다. I=imread('full_file_directory')을 사용하여 tif를 저장하고 임계 값을 찾기 위해 multithresh를 사용했습니다. 그러나 imquantize(image,threshold)을 사용하려고하면 완전히 흰색 이미지 (모든 이미지)가 반환됩니다. 내가 빠진 것이 있습니까?matlab의 imquantsize 함수

+0

반환 할 값의 임계 값은 무엇입니까? – nkjt

+0

세 개의 임계 값을 찾고 60을 받았습니다. 122 192 – user2906979

+0

전체 코드를 표시 할 수 있습니까 (이미지로드, 다중 문서 실행 및 imquantize 호출) 할 수 있습니까? 문제가 무엇인지는 분명하지 않습니다. – nkjt

답변

0

문제는 imquantize 자체의 사용은 아니지만 나중에 결과를 표시하는 방법 (doublecheck하려면 new의 최대 값과 최소값 검사). documentation에 기재된

기본적

하면 new=imquantize(Image,thresh);를 호출하는 경우와 thresh 3 개 값을 포함하고, 상기 매트릭스는 new 1-4 숫자 1을 포함한다. 또한 imquantize의 출력은 임계 값이 제공되었지만 값이 제공되지 않는 경우 double 유형입니다.

따라서이 이미지를 을 사용하여 표시하려고하면 기본적으로 두 번 이미지의 범위가 [0 1] 인 것으로 예상되므로 완전히 흰색 이미지가 표시됩니다.

해결 방법 :를 사용하여 출력 값을 정의 할 수 imquantizevalues 입력 -이 귀하의 의견과 같은 형식으로 출력을 유지하는 추가 특권이 있어야합니다. 이 0 (흑)에 제 1 임계 값 ≤되는 출력 이미지의 모든 픽셀을 설정

Image=imread('P:\1\Image_2788.tif'); 
thresh=multithresh(Image,3); 
new=imquantize(Image,thresh, [0 thresh]); 

, 값을 예를 들어 시도되도록 임계치 N 번호

당신은, N + 1의 값을 필요 제 1 임계 값과 제 2 임계 값 사이의 값은 thresh(1) 등으로된다.

0

최소 한도에서 표시하고 있습니까? 아마도 올바르게 표시되지 않을 수 있습니다. 이미지를 보려면 imshow(new,[]);을 사용하십시오. 여기에 우리가하는 이유를 볼 수 있습니다. What does `imshow(someImage, [])` do?