如何除以 python 中的数字并转换为整数?
how to divide numbers in python and convert as integer?
使用给定的代码,我得到 0 0 0 0。为什么答案变成零?我正在尝试获取 x,y 坐标并想要裁剪图像,但除法似乎不起作用 properly.Please 建议我一些想法来解决它。
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)
如果您使用的是 Python 2,那么您进行的是整数除法,而不是浮点数除法。尝试将 width
和 height
声明为浮点数(width = 400.0
、height = 800.0
)。
更新
更新代码并使用浮点数后:您得到零,因为当您将小于 1 的正浮点数转换为整数时,您得到 0。例如 int(0.5) == 0
和int(1.5) == 1
。基本上,你扔掉了小数部分。
使用给定的代码,我得到 0 0 0 0。为什么答案变成零?我正在尝试获取 x,y 坐标并想要裁剪图像,但除法似乎不起作用 properly.Please 建议我一些想法来解决它。
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)
如果您使用的是 Python 2,那么您进行的是整数除法,而不是浮点数除法。尝试将 width
和 height
声明为浮点数(width = 400.0
、height = 800.0
)。
更新
更新代码并使用浮点数后:您得到零,因为当您将小于 1 的正浮点数转换为整数时,您得到 0。例如 int(0.5) == 0
和int(1.5) == 1
。基本上,你扔掉了小数部分。