Linux使用pyVLfeat库做Dense sift提示段错误(segmentation fault)详细分析
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!搞定
本博客(http://www.cnblogs.com/cj695/)未标明转载的内容均为本站原创,非商业用途转载时请署名(77695)并注明来源(http://www.cnblogs.com/cj695/)。商业用途请联系作者(77695) QQ:646710030。作者(77695)保留本博客所有内容的一切权利。
独立博客:http://nfeng.cc/
独立博客:http://nfeng.cc/