2014-12-09 144 views
0

我想要做VLFeat.org教程:http://www.vlfeat.org/overview/sift.html,以了解有关SIFT功能的信息。我正在使用八度。我倍频的版本是GNU Octave, version 3.8.2,我在Mac上为10.9.5,当我列出pakages:八度图像包无法将图像转换为灰度

octave:4>pkg list 
Package Name | Version | Installation directory 
--------------+---------+----------------------- 
control *| 2.6.6 | /Users/javier/octave/control-2.6.6 
general *| 1.3.4 | /Users/javier/octave/general-1.3.4 
    image *| 2.2.2 | /Users/javier/octave/image-2.2.2 
    signal *| 1.3.0 | /Users/javier/octave/signal-1.3.0 

因此,所有的包加载。该VLFeat版本我使用:

octave:5>vl_version 
0.9.19 

的I型

I = vl_impattern('roofs1') ; 
warning: your version of GraphicsMagick limits images to 8 bits per pixel 
image(I) ; 

有时我得到的警告,有时候我不知道。然后,我转换成图像使用灰度图像:

I = single(rgb2gray(I)) ; 

我获得的形象是所有蓝色的,我不能看到有其他的不是制服深蓝色的图像什么。没有错误信息或任何其他警告,只是一个蓝色的图像。我尝试了一些东西:其他图像,在图像包中使用imread加载,似乎没有任何工作(当我使用imread时,我得到类似于热图的东西,但不是灰度图)。我想这可能与该警告的事情:

warning: your version of GraphicsMagick limits images to 8 bits per pixel

我所有的倍频安装已完成MacPorts的。所以,我想问题是。我必须再次安装GraphicsMagick。如果是这样,使用macports,它是:

sudo port install GraphicsMagick --with-quantum-depth=16 

我是否必须再次重建八度?

预先感谢

回答

1

不能做到这一点

I = single(rgb2gray(I)) ; 

的显示类单的图像的范围是从不同UINT8。要么使用im2single

imshow (im2single (rgb2gray (I)) 

或设置imshow的显示范围:

imshow (single (rgb2gray (I)), [0 255]) 
imshow (single (rgb2gray (I)), []) 

octave manual

一个像素的灰度或RGB值的实际意义图像取决于矩阵的类别。如果矩阵具有类双像素强度在0和1之间,如果它属于uint8类,强度在0和255之间,并且如果它属于uint16类,强度在0和65535之间。