我做了一个python程序来拍摄图像并确定不同网格大小的分形维数,用于盒子计数。我以前有它工作,它被删除了,我不记得我是怎么得到它的,但我现在有类似的东西。
这是我当前的代码
def count(image, size):
N=0
step=size
for i in range(0, Lx, step):
for j in range(0, Ly, step):
if (img_matrix[i:step,j:step] == 0).any():
N += 1
return N
size=np.arange(0,10, 1)
N=0
Ns=[]
for s in size:
N=count(img,s)
Ns.append(N)`
它只给出1作为Ns的值,我该如何解决这个问题?
1条答案
按热度按时间z2acfund1#
要让它回到你记录的值,你只需要做一些小的调整。
1.在
count_boxes
函数中,需要将切片从i:step
和j:step
-〉更改为i:i+step
和j:j+step
1.你每次都是在第一次迭代时从同一个函数返回,所以你需要dentent return语句,这样它在循环完成之前不会发生。
该函数看起来像这样:
附加说明:
img = Image.fromarray(...)
对象行创建了img
,然后将其传递给count_boxes
函数,但之后从未对它做过任何事情,所以它是无用的。cv2
的阈值和灰度特性。