在C#中查找数组中的对象模式

我正在寻找一种在数组中查找对象模式的有效方法.

这是我必须解决的问题.我正在编写一个有形的界面应用程序,它从网络摄像头收集数据,将其转换为黑白图像,我从中创建一个数组.创建的数组看起来类似于:

1111111111111111111111111111
1111110001111111111000111111
1111100000111111110000011111
1111100000111111110000011111
1111110001111111111000111111
1111111111111111111111111111

其中零表示图像中的黑色.我有大约32个(4行,每个有8个圆圈)圆圈,我需要找到一种有效的方法来找到它们的坐标.我不需要整个形状,只需要每个圆的一组坐标.

感谢您的帮助.

问候,
Teodor Stoyanov

最佳答案 我可以立即看到三个选项(元组用于表示矩阵中的坐标):

>你可以使用BitArray
矩阵中的每个点,如果坐标具有O,则设置该位,成本将是
O(行长x列长)用于存储.如果您知道要检查的坐标,则检索为O(1),如果您只想查找所有O,则返回O(n)
>您可以使用List< Tuple< int,int>>
只存储坐标
矩阵中的每个O,成本都是
O(m)用于存储,m是O的数量.检索也是O(m)
>您也可以选择2
使用字典< Tuple< int,int>,
bool>,允许O(1)检索
时间,如果你知道你的坐标
想检查一下.

点赞