pyVLfeat是著名的图像处理库VLFeat在python上的接口包。在linux环境下使用该库提示“段错误”。百度后得知:
意思其实就是数组溢出,然后想怎么会数组溢出呢?查看Vlfeat matlab接口的程序的时候看到这样一句
I = single(vl_imdown(rgb2gray(I))) ;
rgb2gray是把图片变成单通道图片,vl_imdown是对图片降采样,这都不是关键,最关键的还是在single()这个函数,百度百科可以知道:
matlab中single函数把一个矩阵中所有元素都变为单精度的。
也就是说,我也要做一个单精度的处理,再百度单精度:
单精度数,是指计算机表达实数近似值的一种方式。VB中,Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式
也就是说,要将图片全部转换成float32的格式。直接用np.float32(I),bingo!搞定