2013-04-14 53 views
1

我有存储在一个文件.MAT(Boat.mat) 一个名为船像我装使用load('Boat.mat') 文件如果键入imshow(boat)它只是显示一个空白框。 我只能用imshow(boat,[0 255])查看图片。 当我使用imhist(boat)我再次得到一个空白的框。我如何看直方图。我需要看直方图。此外,我无法使用histeq(boat)进行直方图均衡。Imhist在MATLAB不显示直方图

任何帮助将不胜感激。 感谢

这里是链接到Boat.mat文件 http://www.engr.colostate.edu/ECE513/SP11/Boat.mat

回答

5

默认情况下,imshow假设有0和1之间的值的浮点图像,这就是为什么你的形象(从0到值255)完全显示为白色 - 所有值都大于1.如您所见,您可以强制imshow以不同的方式缩放这些值,但如果您只是首先重新缩放图像,并且保持如下状态,则可能会更容易:

boatDbl = boat/255; 

figure; 
imshow(boatDbl); 

figure; 
imhist(boatDbl); 

编辑:正如Shai指出的,发生这种情况是因为imshow和其他人基于矩阵的数据类型预测值的范围 - 因为您的boat矩阵是double,他们假设范围为0到1.因此,替代修复是将矩阵转换为integer类型,这将使​​imshow呈现范围为0至255:

boat = uint8(boat); 
+2

人们也可以用'uint8'类型工作:'船= UINT8(船);'。 – Shai

+0

好的,谢谢。 – jazzbassrob

+0

谢谢你的帮助。 – Abhilash