gpt4 book ai didi

python - 通过无类型数组进行迭代

转载 作者:行者123 更新时间:2023-12-02 17:18:15 26 4
gpt4 key购买 nike

我是python的新手,所以是我的问题。
我正在使用霍夫线变换来检测通过网络摄像头提要的对象。
起初,我使用静态图像,但效果很好,但现在我尝试使用实时视频提要,程序不断崩溃。

base = cv2.HoughLinesP(vertical, 1, np.pi / 180, 80, minLineLength=50, maxLineGap=75)

for line in base:
try:
x1, y1, x2, y2 = line[0]
if intersect < y2:
cv2.line(img, (x1, y1), (x2, y2), (0, 0, 255), 2)
except:
continue
这部分代码是错误指向的地方。
我不明白我如何使某种类型的行数组(或显然在python中列出?)。
完整的错误是这样的:
  File "C:/Users/ShadowTwins/Documents/GitHub/Detection-algorithm/main.py", line 92, in <module>
img = process(img)
File "C:/Users/ShadowTwins/Documents/GitHub/Detection-algorithm/main.py", line 60, in process
line = np.array()
TypeError: array() missing required argument 'object' (pos 1)
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (436) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
我知道,如果找不到任何代码中断的行,那就是为什么我将try / execpt行放在那里的原因。
但是我希望代码在错误发生之前不会达到那么远。
我接近将其全部集成到C++中,这将是将来的更好选择,还是程序变得更高级?谢谢!

最佳答案

为了重现该问题,我将手放在网络摄像头上。
base变量是None时,会发生此问题。
enter image description here
因此,只需检查base是否不为None,然后显示:

if base is not None:
for line in base:
x1, y1, x2, y2 = line[0]
if intersect < y2:
cv2.line(frame, (x1, y1), (x2, y2), (0, 0, 255), 2)
cv2.imshow("frame", frame)
我的输出:
enter image description here

关于python - 通过无类型数组进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63687635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com