我在Python OpenCV中编写了一个算法来查找特定的目标,但是有时这些目标很难找到,所以我做了这个if else语句,在找不到目标时只输出'target not found'。我迭代了1000个图像并调用了它们的algo,但是我得到了一个错误:
'NoneType' object is not iterable
在下面代码的第6行:
def image_data(img):
img3 = masking (img)
if img3 is None:
print "target not found"
else:
cent, MOI = find_center(img3)
if cent == 0 or MOI == 0:
print 'target not found'
else:
return cent[0],cent[1],MOI
我明白这意味着它没有找到图像,但为什么不直接转到下一个图像并打印错误声明呢?你知道吗
因为您正在尝试将“无”赋值给值列表。你知道吗
要正确执行此操作,请尝试:
这样,如果find_center返回正确的值,它将被分配给cent和MOI。如果返回None,则会将None分配给cent和MOI。你知道吗
函数有时返回None,因此无法从None中解压变量:
开箱前检查返回值是否为无:
或者使用
try/except
:相关问题 更多 >
编程相关推荐