Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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/2/image-processing/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_Image Processing - Fatal编程技术网

Algorithm 将点数据的图像转换为二维布尔数组

Algorithm 将点数据的图像转换为二维布尔数组,algorithm,image-processing,Algorithm,Image Processing,我想将下图转换为二维布尔数组 我以前在图像处理库方面没有太多经验,但一些浅薄的谷歌搜索给了我一些似乎不适用的库,例如将图像转换为所需的格式,如jpeg、png等,或者一些常见的图像编辑任务,如灰度、大小调整等,我需要某种对象识别库来计算每个点的X和Y索引 除了正方形的坐标,我还希望能够获得行和列的计数。我认为解决这个问题的一种方法是使用。您可以使用库进行此操作。创建一个边长至少为14px的方形内核,然后腐蚀图像。在侵蚀上,您将获得如下图像: 您将拥有所有正方形中心的像素位置。但是,它也将包含行。

我想将下图转换为二维布尔数组

我以前在图像处理库方面没有太多经验,但一些浅薄的谷歌搜索给了我一些似乎不适用的库,例如将图像转换为所需的格式,如jpeg、png等,或者一些常见的图像编辑任务,如灰度、大小调整等,我需要某种对象识别库来计算每个点的X和Y索引


除了正方形的坐标,我还希望能够获得行和列的计数。

我认为解决这个问题的一种方法是使用。您可以使用库进行此操作。创建一个边长至少为14px的方形内核,然后腐蚀图像。在侵蚀上,您将获得如下图像:


您将拥有所有正方形中心的像素位置。但是,它也将包含行。当两个或两个以上的正方形彼此相邻时,就会出现这种情况。您必须使用一种算法来消除它们,在这种算法中,14px的圆半径内不能有两个像素

你的形象是如何表现的?是档案吗?RGB值?一些编码字符串?分隔线是否具有恒定宽度(可能为1 px)?黑色的正方形总是圆的吗?半径不变?砌块的宽度或高度是否恒定?是否有平滑或边缘可以被认为是纯黑/白?我真的不确定这里的问题是什么。任何简单的图形库都可以让你加载一幅图像,并检查每个像素的值,这将是我的首选。如果网格大小始终为14像素,则只需测量图像的宽度和高度减去任何白色边框,减去1再除以14即可得到水平和垂直方向上的单元格数。@squemishossifrage您是否使用该库并得出网格大小为14px的结论?有libgd的python端口吗?@deowalk没有,我在一个图形编辑器中打开了这个文件并计算了它们。libgd有python端口吗?您是如何通过编程方式找到左上角坐标的?背后的逻辑是什么?你不必这么做。加载图像时,左上角坐标为1,1。要使网格左上角(而不是图像文件)正常工作,应将其作为原点,对吗?也许在我的例子中,顺便说一下,在1,1假设网格左上角和图像左上角有一些空间。那么,您将如何确定网格左上角的坐标呢?因此,当您加载图像时,从左侧开始的第一个非零像素和从顶部开始的第一个非零像素的坐标将提供网格的左上角。