2

我的计算机上有一个 python3 脚本,我可以运行它python3 motion_detection.py并且可以运行,我尝试在我的 Raspberry 上使用它,但出现错误消息Illegal instruction。引发此错误的行是:frame = imutils.resize(frame, width=500)

这是极简主义的代码示例:

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

我确定该框架不是无,因为我试图保存它并且它有效。我有点困惑,因为没有更多说明Illegal instruction 我检查了我的计算机上的 imutils 版本与 Raspberry (0.4.6) 上的版本相同

4

1 回答 1

2

尝试将行更改frame = imutils.resize(frame, width=500)frame = imutils.resize(frame, width=500, inter=cv2.INTER_NEAREST). 那样有用吗?

使用某些插值方法调整大小的 imutils 实现似乎是一个问题。指定为 的默认插值方法INTER_LINEAR会导致Illegal instructionRPi 零出现错误。但是,如果您将默认值覆盖为无问题的插值方法,它可能会起作用!我测试了每个选项,发现以下每个插值方法都可以在我的 RPi Zero 上成功运行:INTER_NEAREST, INTER_CUBIC, INTER_LANCZOS4.

让我知道这是否适合您。我希望我有更多关于原因的详细信息,但到目前为止,我一直在摸索 imutils 源代码无济于事。

于 2019-05-18T19:20:43.853 回答