如何在python中划分数字并转换为整数?

时间:2017-03-02 11:33:24

标签: python division

使用给定代码,我得到0 0 0 0.为什么答案变为零?我正在尝试获取x,y坐标并想要裁剪图像,但似乎分区不能正常工作。请给我一些想法来解决它。

def ROI_extract(first_corner,last_corner,image):
    img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    w,h = img.shape[::-1]
    Xtf = int(first_corner[0] / float(w))
    Xbf = int(last_corner[0] / float(w))
    Ytf = int(first_corner[1]/  float(h))
    Ybf = int(last_corner[1]/  float(h))
    print Xtf,Xbf,Ytf,Ybf
    ROI_img = image[Ytf[1]:Ybf[1],Xtf[0]:Xbf[0]] 
    cv2.imwrite('cropped', ROI_img)
    return ROI_img

image = cv2.imread('sample.jpg')
first = [475,425]
last = [728,587]
img =  ROI_extract(first, last, image)

1 个答案:

答案 0 :(得分:1)

如果你正在使用Python 2,那么你正在进行整数除法,而不是浮点数。尝试将widthheight声明为浮点(width = 400.0height = 800.0)。

更新

在您更新代码并使用浮点之后:您得到零,因为当您将小于1的正浮点数转换为整数时,您得到0.例如int(0.5) == 0int(1.5) == 1。基本上,你扔掉了小数部分。