Linux使用pyVLfeat库做Densesift提示段错误(segmentationfault)详细分析

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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!搞定

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航