Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 如何在仅给定像素邻域的情况下以编程方式创建像素网格_Algorithm_Sorting_Pixels - Fatal编程技术网

Algorithm 如何在仅给定像素邻域的情况下以编程方式创建像素网格

Algorithm 如何在仅给定像素邻域的情况下以编程方式创建像素网格,algorithm,sorting,pixels,Algorithm,Sorting,Pixels,我正试图找出一种基于像素数和周围像素数构建网格的算法。例如,假设我有200个随机像素。我有一个像素a,我可以得到它周围每个像素的参考。这适用于所有像素。本质上,每个像素都是一个拼图块,每个拼图块都有一个对其所有邻居的引用。如何通过编程在给定信息的情况下创建像素网格(完成的拼图) 输入是一个像素列表,每个像素都具有属性顶部、左侧、底部和右侧(对周围像素的引用)和 输出将是像素的2D数组网格 您可以执行以下操作: def pixel_graph_to_grid(像素): 如果len(像素)==0

我正试图找出一种基于像素数和周围像素数构建网格的算法。例如,假设我有200个随机像素。我有一个像素a,我可以得到它周围每个像素的参考。这适用于所有像素。本质上,每个像素都是一个拼图块,每个拼图块都有一个对其所有邻居的引用。如何通过编程在给定信息的情况下创建像素网格(完成的拼图)

  • 输入是一个像素列表,每个像素都具有属性
    顶部
    左侧
    底部
    右侧
    (对周围像素的引用)和
  • 输出将是像素的2D数组
    网格
您可以执行以下操作:

def pixel_graph_to_grid(像素):
如果len(像素)==0:
返回[]]
#(1)查找左上角的像素。
p=像素[0]
而p.top:
p=p.top
而p.left:
p=p左
#(2)按行浏览图像。
网格=[]
_行的第一个_=p
尽管如此:
p=第行的第一行
行=[p]
而p.right:
p=p右
行。追加(p)
grid.append(行)
如果第行底部的第一个\u:
第一行的第一行=第一行的第一行。底部
其他:
打破
您还可以进行类似于
(1)
的计数,以了解必须为网格分配多少内存


此算法具有线性运行时间,需要恒定的额外空间,因此它应该是最优的。

引用是否以任何方式排序?拼图不仅仅告诉你它连接到哪四个,还告诉你连接的顺序。这将使构造外部边界然后向内工作相对容易。实际上不,没有有限的边界,只有一个包含ID的对象(像素)数组,以及对其他像素的4个引用,每个方向一个。你能解释“每个像素都是拼图块”的意思吗,简单的解决方案不是从任意像素开始,转到任意相邻像素,然后继续吗?相邻像素是否也引用了其相邻像素?我将干燥并绘制一个图表以更好地说明