我有一个这样的最终列表,请注意结尾的“无”,我正在尝试重新格式化它:
[array([[[18, 10, 10],
[44, 38, 10]]], dtype=uint16), array([[[24, 32, 9]]], dtype=uint16), array([[[18, 12, 9]]], dtype=uint16), array([[[20, 34, 9]]], dtype=uint16), array([[[16, 12, 10]]], dtype=uint16), array([[[16, 12, 10]]], dtype=uint16), None]
这是函数直接产生的结果等长圆():
[[[18.5 10.5 10.3]]]
如果读取失败,它将返回
"None"
这是OpenCV中Hough圆的输出。有时霍夫圆会输出一个“无”,我有一个检查,以防失败,但它不会停止无被读取。你知道吗
我无法得到一个检查工作正常,以阻止从附加或删除无。你知道吗
这是霍夫圆代码:
def Hough_Circles(image,dp,minDist,param1,param2,minRadius,maxRadius):
try:
circles = cv.HoughCircles(image, cv.HOUGH_GRADIENT, dp, minDist,
param1=param1,
param2=param2,
minRadius=minRadius,
maxRadius=maxRadius)
if(circles == None):
#this is a keyword to keep it from appending later
circles = "REMOVE ME"
else:
circles = np.uint16(np.around(circles))
except:
print("no circle found")
return circles
我尝试了以下方法来检查并删除此项:
if(circles[index] != None):
# this is a good item
if(any(circles == None))
# This is a bad item
if(isinstance(circles,list):
# This is a good item
if(circles == None):
# this is a bad item
if(isinstance(circles,list)):
# it says [[[18.5 10.5 10.3]]] is not a list
circles = np.uint16(np.around(circles))
else:
# this is all it reads
circles = "BAD READ"
我试过在手术前把它取下来np.uint公司已添加,但没有帮助。你知道吗
我的问题几乎总是“NoneType是不可订阅的”或者“subscribable的truthvalue是不明确的”,这是有意义的。但是“isinstance”总是说列表不是列表,但是在python控制台上的同一个测试说它是列表。你知道吗
已解决
我不知道HoughCircles真的会以numpy.ndarray公司““
注意自己,一定要检查类型。你知道吗
相关问题 更多 >
编程相关推荐