2

私のコンピューターには、実行できる python3 スクリプトがあり、動作します。Raspberry でpython3 motion_detection.pyそれを使用しようとすると、何かが失敗し、メッセージが表示されますIllegal instruction。このエラーをスローする行は次のとおりです。frame = imutils.resize(frame, width=500)

コードの最小限のサンプルを次に示します。

import imutils
import cv2
frame = cv2.imread('test.jpg')
frame = imutils.resize(frame, width=500)

保存しようとして機能したので、フレームは None ではないと確信しています。Illegal instruction ラズベリー(0.4.6)と同じコンピューターでimutilsのバージョンを確認したという説明がこれ以上ないため、少し混乱しています

4

1 に答える 1

2

frame = imutils.resize(frame, width=500)行を に 変更してみてくださいframe = imutils.resize(frame, width=500, inter=cv2.INTER_NEAREST)。それは動作しますか?

特定の補間方法によるリサイズの imutils 実装に問題があるようです。として指定された既定の内挿法は、RPi ゼロでエラーをINTER_LINEAR引き起こします。Illegal instructionしかし、デフォルトを問題のない補間方法にオーバーライドすると、うまくいくかもしれません! 各オプションをテストしたところ、次の各補間方法が RPi Zero で正常に実行されることがわかりましたINTER_NEAREST, INTER_CUBIC, INTER_LANCZOS4

これがうまくいくかどうか教えてください。why についてもっと詳しく知りたいのですが、これまで imutils のソースコードを調べても役に立ちませんでした。

于 2019-05-18T19:20:43.853 に答える