我有一个灰度图像,其值介于 0(黑色)和白色(255)之间。我有一个target与灰度图像大小相同的矩阵。我需要从灰度图像中的一个随机像素开始,一次遍历图像一个像素(以深度优先搜索方式),将其值复制到target矩阵中的相应位置。我显然只需要对非白色像素执行此操作。我怎样才能做到这一点?本以为可以得到灰度图像的连通分量,将每个像素点一个一个地遍历,但是找不到合适的连通分量的实现。有任何想法吗?
例如,如果我的灰度图像是:
[[255,255,255,255,255,255,255]
[255,255, 0 ,10 ,255,255, 1 ]
[255,30 ,255,255,50 ,255, 9 ]
[51 ,20 ,255,255, 9 ,255,240]
[255,255,80 ,50 ,170,255, 20]
[255,255,255,255,255,255, 0 ]
[255,255,255,255,255,255, 69]]
Run Code Online (Sandbox Code Playgroud)
然后可能的遍历[0,10,50,9,170,50,80,20,51,30]后跟[1,9,240,20,0,69]to give [0,10,50,9,170,50,80,20,51,30,1,9,240,20,0,69]。不同对象之间的顺序无关紧要。
其他可能的遍历是:
[1,9,240,20,0,69,0,10,50,9,170,50,80,20,51,30]或[1,9,240,20,0,69,0,10,50,9,170,50,80,20,30,51]或
[1,9,240,20,0,69,10,50,9,170,50,80,20,30,0,51]
等等。
python numpy image python-imaging-library connected-components