检查python cv2中分类器对象的类型?
我如何检查是否有检查python cv2中分类器对象的类型?,python,opencv,typechecking,Python,Opencv,Typechecking,我如何检查是否有cv2.CascadeClassifier对象 Atm,如果我用错误的路径运行它,它不会让我知道,并且会给我无用的结果。所以我想要这个检查,但不知道正确的调用/语法 输入: cascadePath=“correctPath.xml” Try1: if type(trainedCascade) is not 'cv2.CascadeClassifier': print(type(trainedCascade)) raise Exception("no
cv2.CascadeClassifier
对象
Atm,如果我用错误的路径运行它,它不会让我知道,并且会给我无用的结果。所以我想要这个检查,但不知道正确的调用/语法
输入:
cascadePath=“correctPath.xml”
Try1:
if type(trainedCascade) is not 'cv2.CascadeClassifier':
print(type(trainedCascade))
raise Exception("no classifier found at this path")
if not isinstance(trainedCascade, type(cv2.CascadeClassifier)):
raise Exception("no classifier found at this path")
if cv2.CascadeClassifier.empty():
print("trained cascade is empty!")
Result1:
if type(trainedCascade) is not 'cv2.CascadeClassifier':
print(type(trainedCascade))
raise Exception("no classifier found at this path")
if not isinstance(trainedCascade, type(cv2.CascadeClassifier)):
raise Exception("no classifier found at this path")
if cv2.CascadeClassifier.empty():
print("trained cascade is empty!")
异常:在此路径未找到分类器
Try2:
if type(trainedCascade) is not 'cv2.CascadeClassifier':
print(type(trainedCascade))
raise Exception("no classifier found at this path")
if not isinstance(trainedCascade, type(cv2.CascadeClassifier)):
raise Exception("no classifier found at this path")
if cv2.CascadeClassifier.empty():
print("trained cascade is empty!")
结果2:
异常:在此路径未找到分类器
Try3:
if type(trainedCascade) is not 'cv2.CascadeClassifier':
print(type(trainedCascade))
raise Exception("no classifier found at this path")
if not isinstance(trainedCascade, type(cv2.CascadeClassifier)):
raise Exception("no classifier found at this path")
if cv2.CascadeClassifier.empty():
print("trained cascade is empty!")
结果3:
if type(trainedCascade) is not 'cv2.CascadeClassifier':
print(type(trainedCascade))
raise Exception("no classifier found at this path")
if not isinstance(trainedCascade, type(cv2.CascadeClassifier)):
raise Exception("no classifier found at this path")
if cv2.CascadeClassifier.empty():
print("trained cascade is empty!")
AttributeError:'builtin\u function\u或\u method'对象没有属性“empty”
您几乎做到了:
if not isinstance(trainedCascade, cv2.CascadeClassifier):
更新:如果获取的类型错误:isinstance()arg 2必须是一个类..
,这意味着cv2.CascadeClassifier
不是一个类,但可能是某种工厂函数。根据它的不透明程度,您可能无法检查返回的类型。你可以试试:
if trainedCascade.empty():
你就快到了:
if not isinstance(trainedCascade, cv2.CascadeClassifier):
更新:如果获取的类型错误:isinstance()arg 2必须是一个类..
,这意味着cv2.CascadeClassifier
不是一个类,但可能是某种工厂函数。根据它的不透明程度,您可能无法检查返回的类型。你可以试试:
if trainedCascade.empty():
我也面临同样的问题。正如@thebjorn所说,你可以使用
if isinstance(object, class):
如果出现错误TypeError:isinstance()arg 2必须是类、类型或类和类型的元组,可以尝试:
if isinstance(trainedCascade, type(cv2.CascadeClassifier())):
这样,您就可以构造所需类型的对象,然后对照目标对象进行检查。我也面临同样的问题。正如@thebjorn所说,你可以使用
if isinstance(object, class):
如果出现错误TypeError:isinstance()arg 2必须是类、类型或类和类型的元组,可以尝试:
if isinstance(trainedCascade, type(cv2.CascadeClassifier())):
这样,您可以构造所需类型的对象,然后对照目标对象进行检查。我也尝试过。但是问题越来越长,所以我没有把它包括进去。但是当我尝试这样做时,我得到:TypeError:isinstance()arg 2必须是类、类型或类和类型的元组
我也尝试过。但是问题越来越长,所以我没有把它包括进去。但是当我尝试这样做时,我得到:TypeError:isinstance()arg 2必须是类、类型或类和类型的元组