我使用OpenCV搜索二值图像,并将所有白色像素提取到一个列表中。然而,我要尽可能多地提高效率,大约需要10秒。在
以下是我得到的(thresh2
是阈值后的图像):
h,w=thresh2.shape[:2]
WhitePix=[]
for in range(0,h):
TstVal=thresh2[i]
if TstVal.max()=255:
for j in range(0,w):
if thresh2[i,j]==255:
WhitePix.append([i,j])
我检查每一行是否有一个白色像素,如果有,我把它追加到我的列表中。在
OpenCV中有什么功能可以加快搜索速度吗?
提前谢谢。在
似乎您的
thresh2
是一个numpy数组。如果是这样的话,为什么不直接使用numpy过滤呢,这会更有效:thresh2.nonzero()
将返回白色像素的索引。然后可以直接使用它来屏蔽数组:thresh2[thresh2.nonzero()]
或任何下一步要做的事情。。。在一般来说,在python中,可以避免的循环应该。在
您可以通过两种方式来完成:
1)使用Numpy函数
2)使用OpenCV函数
^{pr2}$相关问题 更多 >
编程相关推荐