tomo0415
@tomo0415

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

助けてください

解決したいこと

魚眼カメラのキャリブレーションを行っていますが、以下のエラーが発生します。
python3.8
opencv4.2

発生している問題・エラー

Traceback (most recent call last):
  File "C:\Users\FisheyeCalibrate.py", line 58, in stereo_calibrate
    diff = left_corners - right_corners
TypeError: unsupported operand type(s) for -: 'list' and 'list'

以下が原因のコードです。

 # Check for the flipped checkerboard!
        diff = left_corners - right_corners
        lengths = np.linalg.norm(diff[:, :, 1], axis=-1)
        sum = np.sum(lengths, axis=0)
        if (sum > 2000.0):
            print("THIS STEREO PAIR IS BROKEN!!! Diff is: "+str(sum))
            right_corners = np.flipud(right_corners)

0

2Answer

エラーメッセージをググって調べましたか?

TypeError: unsupported operand type(s) for -: 'list' and 'list'

リストからリストは引けない、と書いてありますよ。

>>> diff = [1, 2, 3] - [3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'list' and 'list'
1Like

left_cornersright_cornersのshape次第では,ndarrayに変換した後ブロードキャストを利用して差を取ることができますよ.

1Like

Your answer might help someone💌