我有以下代码来获得图像的纵横比
img0 = color.rgb2gray(io.imread("C:\\work\\TRAIN\\SET1\\bus.jpg"))
img0 = resize(img0, (40, 116))
ar = 1.0 * (img0.shape[1]/img0.shape[0])
print "aspect ratio: "
print ar
输出是2.0
。但事实并非如此。
对于宽度为116、高度为40的图像,纵横比应为116/40 = 2.9
。在
我的计算哪里出错了?在
Tags:
116/40
将在python2.x上执行floor division(向下舍入到下一个整数)使用类似
float(img0.shape[1]) / img0.shape[0]
的方法来获得浮点除法(这是python3.x上/
运算符的默认行为)。在最好的选择可能是使用
from __future__ import division
(作为脚本中的第一个导入),这将确保脚本在python2.x和python3.x上都使用浮点除法您的问题是img0.shape[1]和img0.shape[0]都是整数。您已经执行了整数除法,然后将其转换为float。你可以试试:
或者
^{pr2}$或者,我推荐的方法是将此导入添加到文件的第一行代码中
这将使“/”始终执行浮点运算,以避免此类情况。如果您想特别使用整数除法,请使用“//”,如10//3所示
相关问题 更多 >
编程相关推荐