python - python3类参数错误
问题描述
我正在尝试在 python 3.5 中创建一个类这是类文件
import numpy as np
import cv2
from threading import Thread
class perstrans:
def __init__(self,a,img,s):
self.name=a
self.imx = img.shape[1]
self.imy = img.shape[0]
self.src = np.float32(
[[28, 198], [252, 198], [203, 140], [79, 141]],
[[28, 198], [252, 198], [203, 140], [79, 141]])
self.dst = np.float32(
[[0, imy],
[imx, imy],
[imx, 0],
[0, 0]])
self.pmat = cv2.getPerspectiveTransform(self.src[s[1]], self.dst)
return None
def transfer(self,image):
Thread(target=self.perstr, args=(image)).start()
def perstr(self,imaga):
self.h, self.w = imaga.shape[:2]
self.res = cv2.warpPerspective(imaga, m, (w,h), flags=cv2.INTER_LINEAR)
return self
def getres(self):
return self.res
但是当我像这里一样初始化它时,我收到以下错误
import cv2
import numpy as np
import perstrans
cap = WebcamVideoStream(0).start()
img = cap.read()
img = cv2.resize(img,(resizex,resizey))
h, w = img.shape[:2]
trns=perstrans.perstrans("angle",img,0)
....
Traceback (most recent call last):
File "main.py", line 39, in <module>
trns=perstrans.perstrans("angle",img,0)
File "/home/huzeyfe/Desktop/robotaksi data/line tracking/duzenlenmis/v2/perstrans.py", line 12, in __init__
[[28, 198], [252, 198], [203, 140], [79, 141]])
TypeError: function takes at most 1 argument (2 given)
谢谢
注意:这个问题可能是重复的,但我看到的大多数问题都在函数 decleration 中丢失了自我,我找不到类似我的问题
解决方案
这不是类的问题。您只是试图将两个单独的参数传递给np.float32()
:
np.float32(
[[28, 198], [252, 198], [203, 140], [79, 141]],
[[28, 198], [252, 198], [203, 140], [79, 141]])
仔细看。这是列表的两倍[[28, 198], [252, 198], [203, 140], [79, 141]]
。np.float32()
只需要一个参数。
更正该行以传入一个参数。
并不是说您的代码在那之后会起作用;还有更多问题:
s
被视为可以在您的类__init__
方法中索引的东西:self.pmat = cv2.getPerspectiveTransform(self.src[s[1]], self.dst) # ^^^^
请注意
s[1]
,但您对类的使用为 传递了一个整数值s
:trns=perstrans.perstrans("angle",img,0) # ^
所以
s[1]
也会失败,与TypeError: 'int' object is not subscriptable
.您只传入图像作为;的
args
参数Thread()
括号不会使它成为一个元组:Thread(target=self.perstr, args=(image)).start() # ^^^^^^^
您需要在此处添加逗号,否则您会收到更多错误(具体取决于 引用的对象的类型
image
):Thread(target=self.perstr, args=(image,)).start()
推荐阅读
- c++ - 提取角度和轴的信息
- amazon-web-services - 是否可以在 Cloudformation 中设置带有 VPN 连接的 AWS Transit Gateway?
- css - 绝对定位拆分标题和描述
- reactjs - 为什么 jest.isolateModules 没有按预期工作?
- c# - 如何在 appsettings.json 中指定必填字段?
- java - 如何在 Android Studio 中实现跟踪路由?
- python-3.x - python3中使用CVXPY进行整数线性规划
- html - 在嵌套的 div 和 span 标签中使用 scrapy 跟踪信息
- css - 某些样式的 ReactJS 未在浏览器中应用
- xml - 替换取自另一个属性的值