Python 索引器:列表索引超出范围:sys.argv[1]超出范围
我正在尝试运行以下代码,但始终遇到一个错误,IndexError:list index超出范围 我知道这是sys.argv[1]的todo;我有一个基本的想法,这个函数是从命令行调用我的项目的第一行-当我尝试从CMD运行项目时,我遇到了相同的错误 守则:Python 索引器:列表索引超出范围:sys.argv[1]超出范围,python,command-line-arguments,Python,Command Line Arguments,我正在尝试运行以下代码,但始终遇到一个错误,IndexError:list index超出范围 我知道这是sys.argv[1]的todo;我有一个基本的想法,这个函数是从命令行调用我的项目的第一行-当我尝试从CMD运行项目时,我遇到了相同的错误 守则: import cv2 import sys cascadePath = sys.argv[1] faceCascade = cv2.CascadeClassifier(cascadePath) video_capture = cv2.Vid
import cv2
import sys
cascadePath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascadePath)
video_capture = cv2.VideoCapture(0)
while True:
ret, frame = video_capture.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
video_capture.release()
cv2.destroyAllWindows()
错误:
Traceback (most recent call last):
File "C:/Users/Niku/PycharmProjects/FaceDetection/FaceDetection.py", line 4, in <module>
cascadePath = sys.argv[1]
IndexError: list index out of range
如有任何见解或建议,将不胜感激 sys.argv[1]此代码需要第一个命令行参数。如果没有,那么您将遇到此错误。
例如:
一些_script.py
import sys
sys.argv[1]
如果您不提供下面显示的myfirst\u agras,那么它将抛出您看到的索引错误
some_script.py myfirst_agr
更多示例是您是如何运行脚本的?您究竟是如何调用您的程序的?另外,您可以通过临时将cascadePath=sys.argv[1]替换为printsys来检查sys.argv列表中的内容。argv@Sushanth-我使用PyCharm作为IDE;我试过从我的IDE运行它,也试过从IDE中的终端运行,试过从CMD引导。@Ronald我正在使用PyCharm作为IDE;我试过从我的IDE运行它,也试过从IDE中的终端运行,试过从CMD引导。感谢对文档的简单分解和引用,非常有用!在使用myfirst_参数从CMD运行代码时,我遇到了另一个错误:faces=faceCascade.detectMultiScale cv2.error:OpenCV4.2.0 C:\projects\opencv python\opencv\modules\objdetect\src\cascadedtect.cpp:1689:error:-215:Assertion失败!函数“cv::CascadeClassifier::detectMultiScale”中为空,任何洞察都将不胜感激。@Karanvir.S.G,这是完全不同的问题。你可以提出另一个问题。@Karanvir.S.G,如果这是一个有用的答案,你能接受这个答案吗?