keep-loving-pythonのブログ

Pythonを愛し続けたいです(Pythonが流行っている限りですが。。。)

解決策。cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'drawMarker'

cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'drawMarker'

エラー

エラーの内容

cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'drawMarker'

エラー全体

Traceback (most recent call last):
  File "opencv_api_ex001.py", line 21, in <module>
    cv2.drawMarker(img_mark, tuple(pt), (0, 255, 0), thickness=4)
cv2.error: OpenCV(4.5.3) :-1: error: (-5:Bad argument) in function 'drawMarker'
> Overload resolution failed:
>  - Can't parse 'position'. Sequence item with index 0 has a wrong type
>  - Can't parse 'position'. Sequence item with index 0 has a wrong type

環境

windows10
python3.7
opencv4.5.3

解決策

入力するデータをfloatからintにする

src_pts = np.array([[30, 30], [50, 200], [350, 50]], dtype=np.float32)##int32)##float32)

コードを示せないと状況が見えないと思いますが。。。コードは、以下。↓

img = cv2.imread('lena.jpg')

src_pts = np.array([[30, 30], [50, 200], [350, 50]], dtype=np.float32)##int32)##float32)

img_mark = img.copy()

for pt in src_pts:
    cv2.drawMarker(img_mark, tuple(pt), (0, 255, 0), thickness=4)

コメント

特にありませんが。。。OpenCVのエラー、きりがないので、エラーの味方の整理を、いつか、したいと思います。