我正在尝试使用 python3 从我的 Windows 11 工作站部署此代码。运行代码并弹出 4 个窗口。其中一个窗口本来是用来显示实时摄像头画面的,但它死机了。通过浏览器从我的 pi zero 传送的视频看起来不错。我只是对 python 还不够精通,无法调试它。
问题一:cv2显示窗口输出一直是空白
问题 2: 代码在识别出我的魔杖时挂起,导致它运行 cv2.imshow() 函数,几乎立即挂起整个代码。
https://github.com/adamthole/PyPotter/blob/master/PyPotter.py
代码应该做什么! 该脚本应该运行并复制视频流的输出并删除背景。然后它只看它视野中最具反射性的点,也就是红外线棒。一旦根据先前的帧看到模式,它就会将其与本地文件/模式进行比较并触发 HA API 调用。我从来没有看到它最后跟踪魔杖运动的输出... ***我还注意到当我可以运行它时它会点击 CheckForPattern 函数然后是 cv2.imshow("Output",xx) 然后是一个窗口挂起和挂起的窗口及其处理的最后一帧。 ***
我试过什么……
为了在“原始”窗口中获得某种视频输出,我执行以下操作: -更正了类型错误
for track in wandTracks:
x1 = prevTrack[0]
x1 = int(x1)
x2 = track[0]
x2 = int(x2)
y1 = prevTrack[1]
y1 = int(y1)
y2 = track[1]
y2 = int(y2)
if IsShowOutputWindows:
IsShowOriginal = True
IsShowBackgroundRemoved = True
IsShowThreshold = False
IsShowOutput = False
if wand_path_frame is not None:
if (IsShowOutput):
x = outputCps.countsPerSec()
wandPathFrameWithText = AddIterationsPerSecText(wand_path_frame,outputCps.countsPerSec())
cv2.putText(wandPathFrameWithText, "Last Spell: " + LastSpell, (10, 400), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 255, 255))
print("AddIterationsPersec",wand_path_frame, x, LastSpell)
cv2.imshow("Output", wandPathFrameWithText)
print("after imshow",wandPathFrameWithText)
CheckForPattern(
[331.77042, 412.87335]
AddIterationsPersec [[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
...
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]
[0 0 0 ... 0 0 0]] 0 None