| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1232 人关注过本帖
标题:求教如何在矩阵图形中找到按规则生成的图形?
只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
 问题点数: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
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
本帖也请各位版主大大及过往高手能够不吝赐教,协作制作。
2023-02-19 18:37
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
本帖提出的问题的确比较烧脑,烦请各位版主大大及过往高手能够不吝赐教,协作制作。
2023-02-20 23:10
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分: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
快速回复:求教如何在矩阵图形中找到按规则生成的图形?
数据加载中...
 
   



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

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