У меня есть цикл, который слишком медленный в C#. Я хочу знать, есть ли более быстрый способ обработки через эти массивы. В настоящее время я работаю в .NET 2.0. Я не против обновления этого проекта. Это часть теоретической концепции обработки изображений, включающей уровни серого.Как это сделать быстрее всего? Массивы изображений
- количество пикселей (PixCnt = 21144402)
- g_len = 4625
- list1d - 1Dimensional массив изображения с верхней гранью указанного выше количества пикселей.
- pg - держатель интенсивности уровня серого.
Эта функция создает индекс этих значений. следовательно, pgidx.
int[] pgidx = new int[PixCnt];
sw = new Stopwatch();
sw.Start();
for (i = 0; i < PixCnt; i++)
{
j = 0;
pgidx[i] = 0;
while (list_1d[i] != pg[j] && j < g_len) j++;
if (list_id[i] == pg[j])
pgidx[i] = j
}
sw.stop();
Debug.WriteLine("PixCnt Loop took" + sw.ElapsedMilliseconds + " ms");
Сколько времени стоит слишком долго? – hatchet
От 5 до 10 минут. –
Ваше имя переменной трудно понять. –