저는 Matlab을 처음 사용하여 tif를 가져 와서 여러 임계 값을 찾아 적용하려고합니다. I=imread('full_file_directory')
을 사용하여 tif를 저장하고 임계 값을 찾기 위해 multithresh를 사용했습니다. 그러나 imquantize(image,threshold)
을 사용하려고하면 완전히 흰색 이미지 (모든 이미지)가 반환됩니다. 내가 빠진 것이 있습니까?matlab의 imquantsize 함수
1
A
답변
0
문제는 imquantize
자체의 사용은 아니지만 나중에 결과를 표시하는 방법 (doublecheck하려면 new
의 최대 값과 최소값 검사). documentation에 기재된
하면 new=imquantize(Image,thresh);
를 호출하는 경우와 thresh
3 개 값을 포함하고, 상기 매트릭스는 new
1-4 숫자 1을 포함한다. 또한 imquantize
의 출력은 임계 값이 제공되었지만 값이 제공되지 않는 경우 double 유형입니다.
따라서이 이미지를 을 사용하여 표시하려고하면 기본적으로 두 번 이미지의 범위가 [0 1] 인 것으로 예상되므로 완전히 흰색 이미지가 표시됩니다.
는해결 방법 :를 사용하여 출력 값을 정의 할 수 imquantize
의 values
입력 -이 귀하의 의견과 같은 형식으로 출력을 유지하는 추가 특권이 있어야합니다. 이 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?
반환 할 값의 임계 값은 무엇입니까? – nkjt
세 개의 임계 값을 찾고 60을 받았습니다. 122 192 – user2906979
전체 코드를 표시 할 수 있습니까 (이미지로드, 다중 문서 실행 및 imquantize 호출) 할 수 있습니까? 문제가 무엇인지는 분명하지 않습니다. – nkjt