Я практикую DFS с этим изображением, и я хочу сосчитать белое пятно на изображении
, но DFS заканчивается так:
def dfs(img,j,i,width,height):
print(j,i)
if j < 0 or i< 0 or j>= height or i>= width or (img[j,i,0] == 0 and img[j,i,1] == 0 and img[j,i,2] == 0):
cv2.imshow("hi",img)
cv2.waitKey(0)
return
img[j,i,0] = 0
img[j,i,1] = 0
img[j,i,2] = 0
dfs(img,j+1,i,width,height)
dfs(img,j-1,i,width,height)
dfs(img,j,i+1,width,height)
dfs(img,j,i-1,width,height)
if __name__ == "__main__":
img = cv2.imread(r"D:\secret\Problem3\test2-gray.bmp")
count = 0
img = cv2.resize(img, (400, 400), interpolation=cv2.INTER_CUBIC)
og_img = img.copy()
width,height = img.shape[0],img.shape[1]
for j in range(height):
for i in range(width):
if (img[j,i] >0).all():
count += 1
dfs(img,j,i,width,height)
cv2.imshow("hi",img)
cv2.waitKey(0)
Я думаю, что что-то не так с конечным утверждением в dfs, но не могу понять, кто-нибудь может дать мне подсказку? спасибо!