TypeError: Expected Ptr cv::UMat for argument '%s'
1835 ワード
エラー:
TypeError: Expected Ptr<:umat> for argument '%s'
詳細なエラーは次のとおりです.
実は入力されたパラメータが間違っています.cv 2に伝わるイメージはnumpyである必要がある.arrayタイプですが、上の情報から分かるように、文字列タイプが入っているので、エラーを報告します.私がこのような間違いを犯したのは、私がcopyに書いた関数をクラスに、メンバー関数として、以下のようにします.
本来は次のようになります.
copyからクラスへ:
pythonには独自の言語特性があり、上のクラスのimageはselfとされています.次のように変更すれば間違いはありません.
TypeError: Expected Ptr<:umat> for argument '%s'
詳細なエラーは次のとおりです.
Traceback (most recent call last):
File "D:/gitProject/ocr_screenRecognition/antiMissing/OperationTicket.py", line 119, in
longest_h_l = ot.line_detect(ot_image)
File "D:/gitProject/ocr_screenRecognition/antiMissing/OperationTicket.py", line 22, in line_detect
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
TypeError: Expected Ptr<:umat> for argument '%s'
実は入力されたパラメータが間違っています.cv 2に伝わるイメージはnumpyである必要がある.arrayタイプですが、上の情報から分かるように、文字列タイプが入っているので、エラーを報告します.私がこのような間違いを犯したのは、私がcopyに書いた関数をクラスに、メンバー関数として、以下のようにします.
本来は次のようになります.
def line_detect(image, model=None):
"""
:param image:
:param model:
:return:
"""
if model != "v":
model = "horizontal"
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# ...
copyからクラスへ:
class OperationTicket(object):
def line_detect(image, model=None):
"""
:param image:
:param model:
:return:
"""
if model != "v":
model = "horizontal"
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# ...
pythonには独自の言語特性があり、上のクラスのimageはselfとされています.次のように変更すれば間違いはありません.
class OperationTicket(object):
def line_detect(self, image, model=None):
"""
:param image:
:param model:
:return:
"""
if model != "v":
model = "horizontal"
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# ...