2017-08-02 35 views
0

我正在嘗試使用Octave讀取.tif格式的醫學影像數據。恰巧只有https://fiji.sc/的軟件纔有能力讀取我擁有的醫學影像。我所指的圖像樣本是this之一。此圖片僅在斐濟以.tif格式可讀。該圖像也可以轉換爲jpg圖像。只有在其他圖像編輯軟件可以看到數據點之後。現在的問題是,我想把它加載到八度並閱讀它 - 目前是不可能的。 imshow()函數的倍頻程不允許我可視化給定的.tif文件。在Octave中讀取tif文件的問題

因此,如果任何人有閱讀這種文件格式的經驗,請讓我知道。謝謝。

回答

3

您鏈接的圖像是一個16位灰度圖像,請參閱$ gm identify -verbose hello.tif。所以讓我們把它加載到GNU八度:

img = imread ("hello.tif"); 
hist (img(:), 200);   # show histogram 

histogram of image

啊!你的形象的主要信息是在範圍0-600(可能使用的圖像採集系統有11個或12位分辨率)所以讓我們的規模和打印此部分爲彩色編碼(貽貝)形象:

imagesc (img, [0 600]) 
colorbar 

imagesc with viridis colormap

這是你想要的嗎?當然,我們也可以使用一個灰色的顏色表,請嘗試:colormap gray

如果這樣仍不能滿足你的需要,你真的應該解釋一下你希望看到什麼....

+2

你可能想解釋爲什麼斐濟( ImageJ)默認工作。原因是對於非8位圖像,ImageJ僅使用圖像的最大值和最小值。人們可以設置其他值,但即使如此,只能在最大值和最小值之間。數據類型的實際限制從不使用。這是有道理的,因爲大多數16位圖像首先不會來自16位相機。 – carandraug

+0

我感興趣的是使用濾鏡去噪圖像。目前我無法使用八度的「imshow()」。我發現的原因之一是該圖像被稱爲16位編碼,但八度只允許顯示8位圖像。那麼有沒有使用'imshow()'的成功方法。 – motiur

+1

@motiur:如上所示,「八度只允許顯示8bit的圖像」並不是真的。拍攝上述圖像的相機具有11位或12位分辨率,存儲爲16位整數。所以通常將其縮放到0..1的範圍內以便進一步處理。如果你只使用沒有LIMITS的'imshow',它將0顯示爲黑色,2^16-1顯示爲白色,但由於整數範圍是0..2000(請參閱我的直方圖),您會看到幾乎是黑色的圖像。沒有魔術在這裏 – Andy