/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
int laststatus = -1, times = -1;
/// 这个结果 返回 素组索引 2,11,25
int[] list = new int[]
{
1,1,0,1,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1
};
for (int i = 0; i < list.Count(); i++)
{
var ret = GetXXXXX(list[i], ref laststatus, ref times);
if (ret)
{
Console.WriteLine($"当前索引=={i} 当前值{list[i]}");
}
}
}
private static int index = 0;
/// <summary>
/// 获取当前参数是否符合滤波
/// </summary>
private static bool GetXXXXX(int status, ref int laststatus, ref int times)
{
var ret = false;
// this.IsSaveImage = false;
//判断之前状态
if (status != laststatus)
{
//次数
times += 1;
if (status == 0 && index < 3)
{
times = 0;
laststatus = status;
ret = true;
return ret;
}
//如果不是判断次数是否超过三次 当前次数3次及以上才可以更改状态。
if (times >= 3)
{
times = 0;
laststatus = status;
// 值是否是需要值
if (status != 1)
{
ret = true;
}
}
}
//本身状态不需计次。
else
{
times = 0;
}
return ret;
}
滤波算法(去重)
最新推荐文章于 2024-08-29 21:56:02 发布