Изменение глубины стека. VB.NET

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Изменение глубины стека. VB.NET

Сообщение Amed » 29.02.2008 (Пт) 6:19

Доброе утро.

Надо отработать длиннющий рекурсивный алгоритм, который выделяет неразрывные участки примерно одинаковой яркости на Bitmap.

Производится на данный момент так:
1 Выбираем начальный пиксел
2 Смотрим его восьмерых соседей, которые еще "не обработаны".
2.1 Если сосед находится в допустимом диапазоне яркости (+/- Threshold), то отмечаем его как "обработанный" и запускаем для него пункт 2.
2.2 Если яркость соседа недопустима, то отмечаем его как "обработанный", но пункт 2 не запускаем.

Работает быстро и правильно, но валится по переполнению стека примерно через 6000 рекурсий.

Т.о., я могу обработать лишь Bitmap-ы примерно 96х64, чего мне недостаточно (желательно хотя бы 400х300, а еще лучше 800х600).
Ограничений по доступной памяти нет, хоть все 2 Гб.

Есть ли подходящая настройка или ключ компилятора? В С++ был ключ /f, насколько говорит MSDN.

Если нет, то придется переписывать алгоритм (а копаться в этом пока не хочется).

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 01.03.2008 (Сб) 0:12

Решения.

1. Спасибо tyomitch за вариант решения с использованием очереди и без рекурсии
2. Мануал увеличения размера стека


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList