我是新來的Matlab,並試圖採取一個tif並找到並應用多個閾值。我使用I=imread('full_file_directory')
保存了tif,並使用多重閾值查找閾值。但是,當我嘗試使用imquantize(image,threshold)
時,它不斷返回完全白色的圖像(全部爲1)。有什麼我失蹤?imquantsize函數在matlab
1
A
回答
0
我懷疑問題是不是使用的imquantize
本身,而是你如何展示之後的結果(以雙檢,檢查的new
的最大值和最小值)。
在默認情況下,如果調用new=imquantize(Image,thresh);
,和thresh
包含3個值,如在documentation描述的矩陣new
將包含值1到4。另外,當提供閾值但值不是時,imquantize
的輸出是雙重類型。
因此,如果您嘗試使用imshow
顯示此圖像new
,它將顯示一個完全白色的圖像,因爲默認情況下它要求類型爲double的圖像具有範圍[0 1]。
解決方案:使用values
輸入imquantize
定義的輸出值 - 這應該保持輸出爲同一類型作爲輸入的附加振作。
對於N數量的閾值則需要N + 1個值,因此,例如嘗試:
Image=imread('P:\1\Image_2788.tif');
thresh=multithresh(Image,3);
new=imquantize(Image,thresh, [0 thresh]);
這設置的任何像素被你的第一閾值≤爲0(黑色)在輸出圖像中,值在第一和第二閾值之間至thresh(1)
,等等。
0
您是從最小 - 最大限制顯示它嗎? 您可能沒有正確顯示它。 使用imshow(new,[]);
來查看您的圖片。 你可以看到我們爲什麼這樣做,在這裏 - What does `imshow(someImage, [])` do?
相關問題
- 1. Matlab:在matlab中的滾動函數
- 2. MATLAB newlin函數
- 3. MATLAB函數
- 4. MATLAB函數
- 5. Matlab discontiniuos函數
- 6. clusterdata Matlab函數
- 7. MATLAB函數
- 8. Matlab padarray函數
- 9. Matlab maxima函數
- 10. MATLAB函數conv2
- 11. Matlab repr函數
- 12. Matlab im2col函數
- 13. MATLAB importdata函數
- 14. Matlab Simulink函數
- 15. strrep MATLAB函數
- 16. matlab函數
- 17. MATLAB函數
- 18. Matlab Stepinfo函數
- 19. 函數imfindcircles Matlab
- 20. Matlab函數huge_add?
- 21. Matlab fft函數
- 22. Matlab fzero函數
- 23. 在matlab中計算函數
- 24. 在matlab中評估函數
- 25. 在C++中的MATLAB函數
- 26. 使用DEC2BIN()函數在MATLAB
- 27. 繪製函數在MATLAB
- 28. 在MATLAB中重載函數
- 29. 在matlab中調用函數
- 30. 在MATLAB中集成函數
你試圖找到多少個閾值,返回的值是什麼? – nkjt
我試圖找到三個門檻,並收到60 122 192 – user2906979
你可以顯示你的完整代碼(加載圖像,運行'multithresh'並調用'imquantize')?目前尚不清楚問題是什麼。 – nkjt