【发布时间】:2014-02-03 17:51:59
【问题描述】:
我正在研究从 400x400 大小的图像生成的 numpy stride-tricks 非重叠块。因此,要从图像中获得 40x40 块,单个块的大小将是 10x10 像素,因此,图像的最后一个像素将读取如下内容 - [39,39,9,9]。现在,问题是我想数数。完整的白色块,即如果在一个块中所有 10x10 像素都是 255,它将是一个白色块,所以 while-blocks 的数量会增加。我为此使用了一个非常简单但耗时的代码:
blocks = numpy.lib.stride_tricks.as_strided(image, shape=shape, strides=strides)
counter = 0 ##### Counting the white blocks
for i in range(40):
for j in range(40):
c = 0
for k in range(10):
for l in range(10):
if blocks[i,j,k,l] ==255:
c = c + 1
if c ==100:
counter = counter +1
有没有一种漂亮而有效的方法来做到这一点?或者任何可用的内置功能对此有所帮助?与我的其他代码相比,这段代码需要很长时间,所以我需要解决它...请帮助..谢谢
【问题讨论】: