2012-12-08 24 views
1

我有一個問題。如何在圖像上將空值設置爲0。有沒有辦法在MATLAB中做到這一點。圖像類型是浮點型,32位,tif格式。此圖像的空值(無數據)是-3.4028234663e + 038。所以這個數字超出了浮點範圍。所以我想以0如何將無數據值設置爲零

回答

1

一般來說,你可以找到所有被替換元素替換這些值:

idx = (I == x); % # x is the "null" value 

其中I是你的形象和x是期望的值來代替(在你的情況,即「空」值)。然而,一個更實際的語法將使用某個閾值,而不是精確值:

idx = (I > y); % # y is a value much lower than x 

現在idx持有要零出元素的邏輯指標。你獲得idx後,只是做:

I(idx) = 0; 

P.S
在實踐中,你可以做達到同樣的效果,而無需創建一個臨時變量idx,就像這樣:

I(I > y) = 0; 
+0

謝謝你,EitanT。將它們替換爲0的第一種方式運行良好。第二種方式將其他值(非空值)替換爲0。 – user1769107