CV2.rectangle在Windows上期望为整数,但在Ubuntu上可以使用float

时间:2018-07-30 05:12:37

标签: python windows opencv ubuntu cv2

我正在ubuntu上编写一些代码,并试图在Windows上运行它。

我在Windows上收到此错误:TypeError: integer argument expected, got float

self.rect1 = [(self.width / 2) - 10, (self.height / 2) - 10]
self.rect2 = [(self.width / 2) + 10, (self.height / 2) + 10]
cv2.rectangle(self.image, tuple(self.rect1), tuple(self.rect2), (255,0,0), -1)

我知道我可以使用int()来解决此问题,但我想像在Ubuntu上一样使用浮点值。

这是特定于操作系统的原因吗?

更新

我相信@mesutpiskin的答案是正确的。如果我将变量手动定义为float:

self.rect1 = [200.5, 200.5]
self.rect2 = [210.5, 210.5]

我在Ubuntu上遇到相同的错误。我想Ubuntu在除法过程中返回int而不是float。打印类型可以确认这一点。

rect3 = [(width / 2) - 10, (height / 2) - 10]   
rect4 = [(width / 2) + 10, (height / 2) + 10]
print(type(rect3[0]))

输出:<type 'int'>

0 个答案:

没有答案