微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

findPose() 缺少 1 个必需的位置参数:'self'

如何解决findPose() 缺少 1 个必需的位置参数:'self'

import cv2 

import time

import mediapipe as mp

def main():

    cap = cv2.VideoCapture(0)
    pTime = 0  # PrevIoUs time
    global img
    detector = poseDetector

    while True:
        success,img = cap.read()

        detector.findPose()
        cTime = time.time()
        print(cTime,pTime)
        fps = 1 / (cTime - pTime)
        pTime = cTime

        cv2.putText(img,str(int(fps)),(70,50),cv2.FONT_HERShey_SCRIPT_COMPLEX,3,(255,0),3)

        cv2.imshow("Image",img)
        cv2.waitKey(1)


class poseDetector():

    def __init__(self,mode=True,complexity=1,smooth=True,detectionCon=0.5,trackCon=0.5):
        self.mode = mode
        self.complexity = complexity
        self.smooth = smooth
        self.detectionCon = detectionCon
        self.trackCon = trackCon

        self.mpDraw = mp.solutions.drawing_utils
        self.mpPose = mp.solutions.pose
        self.pose = self.mpPose.Pose(self.mode,self.complexity,self.smooth,self.detectionCon,self.trackCon)

    def findPose(self,draw=True):
        imgRGB = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
        results = self.pose.process(imgRGB)
        if results.pose_landmarks and draw:
            self.mpDraw.draw_landmarks(img,results.pose_landmarks,self.mpPose.POSE_CONNECTIONS)


if __name__ == "__main__":
    global img
    main()

我在 Pycharm 中收到此消息 早些时候,当我没有将 img 声明为全局时,它曾经是 img 作为缺少的参数。 我已经搜索了很多它说pycharm除了列表,元组之外没有其他参数...... 代码来源来自Advanced computer vision。时间线是 1 小时 18 分钟。你能帮我吗

解决方法

由于poseDetector()是一个类,为了使检测器成为这个类的一个实例,它需要在全局img之后对def main()进行小的更改,如下所示:

detector = poseDetector()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。