我正在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'>