标题:求教如何在矩阵图形中找到按规则生成的图形?
只看楼主
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
结帖率:69.81%
 问题点数:0 回复次数:4 
求教如何在矩阵图形中找到按规则生成的图形?
各位版主大大及过往高手:
    目前遇到一种问题无法解决,不知道如何下手,完全想不出开发方向与解决步骤。我先介绍一下背景与需求:
1、    现有一个文本,里面每行有三个数字,第一个数字为X坐标,第二个数字为Y坐标,第三个数字是这个坐标点的好坏性质(可以粗略认为1是好的,除去1以外的数字都是坏的);

2、    我根据坐标生成一个矩阵图形,里面只有1和B;

3、    现要求先确定一个数字N,在矩阵图形中寻找N个及N个以上的连续连接的B,
如何定义是不是连续连接,我的理解为以一个B为中心生成九宫格,如果上下左右斜上斜下周围8个格子中任意一个格子中是B,那么判定这两个B是连接的;再以第二个B为中心生成九宫格,下左右斜上斜下周围8个格子中任意一个格子中(除去前一个B的格子)是B,则判定有3个B是连续连接的;如果以第二个B为中心生成九宫格,下左右斜上斜下周围8个格子中任意一个格子中(除去前一个B的格子)都不是B,则判断这个连续断了。以此类推,计算最终连续了几个,是否达到N或者N个以上的要求;

4、    如果一个B的连续达到N或者N个以上的要求,那么这个B的连续中每一个B点周边8个位置中如果是1的,则将1转变成Q;

5、    再输出成原来大小的矩阵图形,如果里面有连续达到N或者N个以上B的要求,则最终输出成包含1、B、Q的原来大小的矩阵图形。

我最初的想法是先计算出到底有多少个不同的N个连接的B的组合,然后到矩阵图形中一组一组的匹配,动手没多久就发现这样做不现实,
1、    要求是N个及N个以上,我的想法只能达到最初要求的N个,那么N+1、N+2、N+3……N个以上都没有做到;
2、    N个连接B的组合,每增加一个连续,图形总数量就成指数级的增加,比如4个连续,大约100多种组合,5个连续就变成了600多种组合,6个连续就变成了3800多种组合,7个连续就变成了2万多种组合了……实在是没法算下去了。

到现在实在没有头绪,完全不知道怎么制作,还请各位版主大大及过往高手能够不吝赐教,协作制作!


附件是根据文本中坐标生成矩阵的程序和坐标文本以及矩阵文本。
新建文件夹.rar (9.62 KB)

搜索更多相关主题的帖子: 组合 格子 图形 矩阵 生成 
2023-02-17 16:29
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
本帖也请各位版主大大及过往高手能够不吝赐教,协作制作。
2023-02-19 18:37
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
本帖提出的问题的确比较烧脑,烦请各位版主大大及过往高手能够不吝赐教,协作制作。
2023-02-20 23:10
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:325
专家分:114
注 册:2010-2-17
得分:0 
本帖提出的问题的确比较烧脑,我也一直在寻找思路,网上有些类似的做法,例如数围棋有多少气,或者是扫雷,这些会考虑某点的的周边或者是否连续,等等这些。烦请各位版主大大及过往高手能够不吝赐教,协作制作。
2023-02-21 22:53
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
你这个问题,可以参考图片的轮廓识别算法。
主要步骤如下
1、将3点坐标转换为原始矩阵(只保留0,1)
原始矩阵.txt (5.2 KB)

2、对原始矩阵进行轮廓识别
转换矩阵.txt (25.45 KB)

3、对轮廓算法结果进行处理,形成置位矩阵
   把原始轮廓算法的外边界,孔边界简单处理一下就会形成单一外边界的识别矩阵数组
   根据外边界数组,用二重循环,可以通过统计识别矩阵个连续点数量,计算出每个外边界的连续数
   根据外边界数组N,用二重循环+周边检测可以完成Q值赋值。
置位矩阵.txt (25.45 KB)

边界轮廓点.txt (10.64 KB)



[此贴子已经被作者于2023-3-26 10:47编辑过]

2023-03-26 01:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511315-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.179144 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved