使用图算法计算一张图片内有多少个包围图形

一个涂色游戏需要根据图片的透明度来计算有多少个区域可以进行涂色,用的是洪水填充算法,然后进行计数,算法看起来没什么问题,但是计算出来的区域是错误的,辛苦大佬们帮忙看看呐


test_pixels.zip (1.9 MB)

1赞

没法回答,这种问题不应该问吧

额,为啥,就是单纯的找不到问题,想找人帮忙看看呢 :flushed:

你不找几个小时,都不算找不到

我找了一天了 :sob:

这是不可能的,一共那么两句,一条一条找也不能找一天

你可能是一天,看着不会了就不管了,想着等想起来再看看会不会吧

主要确实没找到 :sob:

为啥会这么想,这是上班遇到的需求,不是自己闲着没事干弄的 :sweat_smile:

stack[] = []是什么意思啊

没有这句呀,是初始化那里嘛

index = y*width+x是什么意思啊

计算在buffer中的下标用的

visited是什么意思,值怎么来的

Hash标记,Stack模拟递归,挺标准!

感觉下面4个分支,会重复被压,你没做标记

gride为什么/4,grid怎么来的

这段代码,就这点东西,如果每个环节都检查,能找不到问题吗

stack那个我是真没看懂,stack[]=[]是添加一个元素,你fill本身就是添加的意思,为什么放一个局部变量添加。还有你这个pop返回花括号也可以?

1赞

const本身是定义一个静态变量的意思,你又用一个对象做变量,这让人难以理解

看看代码这么花活儿,这么两句怎么还搞不明白了