2015-06-16 58 views
1

我使用Kinect v2來記錄深度圖像的序列。 當我在MATLAB中繪製圖像時,圖像顏色變化很大。像這樣圖像 Image1 Imag2深度圖像背景變化

在matlab中的變量uint16類型。

我的問題是它爲什麼會改變?我該如何解決它? 這裏是繪製

for i=1:52 
    imagesc(Depth(:,:,i));colormap gray; 
    pause(0.1); 
end 
+1

請添加您正在使用繪製圖像 –

+0

代碼@VitoShadow是的,我從加入相同的用戶代碼 – Addee

+0

重複後:http://stackoverflow.com/questions/30908572/histogram-noramalization-for-normalizing-background-changes – killogre

回答

0

如果你想在這視覺上一致的順序來可視化你不應該相互獨立縮放深度圖像,圖像的代碼。考慮到色彩地圖(灰色),所有更多的只有20個不同的級別。

試着這麼做:

m = min(Depth(:)); 
M = max(Depth(:)); 
scale = 1.0/(M - m); 
colormap(gray(256)) 
for i=1:52 
    d = scale .* (Depth(:,:,i) - m); 
    imagesc(d); 
    pause(0.1); 
end 
+0

我嘗試使用您建議的代碼。但輸出是這樣的,[結果](https://www.dropbox.com/s/pzf3ahwpvl8lerd/Capture.PNG?dl=0) – Addee

+0

你可能有一些幀(s)與非常低分鐘或非常最大值建議您通過對深度的內容進行直方圖編排來查看是否屬於這種情況,那麼您可以將中心深度的範圍居中。 –

+0

所有的框架都有最小值0,但最大值是變化的,因爲它可以在上面的圖像中看到。 你能告訴我如何通過直方圖的深度內容進行歸一化? – Addee