Преобразовать матрицу.
От: Аноним  
Дата: 13.06.10 09:17
Оценка:
Во всех клетках матрицы кроме граничных единицы или нули.
В граничных (левый/правый столбцы, верхняя/нижняя строки) — только нули.
Нужно заменить значение каждой единичной клетки
на расстояние от неё до ближайшей нулевой клетки.
Re: Преобразовать матрицу.
От: dilmah США  
Дата: 13.06.10 09:38
Оценка:
А>Нужно заменить значение каждой единичной клетки
А>на расстояние от неё до ближайшей нулевой клетки.

уточни, как считаются диагональные расстояния?
Re[2]: Преобразовать матрицу.
От: Аноним  
Дата: 13.06.10 09:57
Оценка:
Здравствуйте, dilmah, Вы писали:

А>>Нужно заменить значение каждой единичной клетки

А>>на расстояние от неё до ближайшей нулевой клетки.

D>уточни, как считаются диагональные расстояния?

По теореме Пифагора.
Re[2]: Преобразовать матрицу.
От: Аноним  
Дата: 13.06.10 10:10
Оценка:
Здравствуйте, dilmah, Вы писали:

А>>Нужно заменить значение каждой единичной клетки

А>>на расстояние от неё до ближайшей нулевой клетки.

D>уточни, как считаются диагональные расстояния?


Если есть идеи, когда расстояние вычисляется
не по теореме Пифагора , а как min(dx,dy),
тоже интересно.
Re[3]: Преобразовать матрицу.
От: Аноним  
Дата: 13.06.10 10:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, dilmah, Вы писали:


А>>>Нужно заменить значение каждой единичной клетки

А>>>на расстояние от неё до ближайшей нулевой клетки.

D>>уточни, как считаются диагональные расстояния?


А>Если есть идеи, когда расстояние вычисляется

А>не по теореме Пифагора , а как min(dx,dy),
А>тоже интересно.
Не min — max(dx,dy)
Re[4]: Преобразовать матрицу.
От: dilmah США  
Дата: 13.06.10 10:42
Оценка:
А>>Если есть идеи, когда расстояние вычисляется
А>>не по теореме Пифагора , а как min(dx,dy),
А>>тоже интересно.
А>Не min — max(dx,dy)

действительно, в такой постановке должно быть проще.

Понятно, что нужно ввести примитивную операцию -- для каждой ненулевой клетки нужно посчитать минимум значений соседей, прибавить единицу и положить в эту клетку.

Вопрос, в том сколько проходов применения этой операции и в каких направлениях нужно сделать, чтобы значения устаканились к правильному ответу.

Должно быть достаточно 4 проходов:
столбец за столбцом слева направо,
столбец за столбцом справа налево,
строка за строкой сверху вниз
строка за строкой снизу вверх.

Интересно, можно ли обойтись меньшим числом проходов?
Re: Преобразовать матрицу.
От: minorlogic Украина  
Дата: 13.06.10 10:50
Оценка: 5 (1)
Здравствуйте, <Аноним>, Вы писали:

А>Во всех клетках матрицы кроме граничных единицы или нули.

А>В граничных (левый/правый столбцы, верхняя/нижняя строки) — только нули.
А>Нужно заменить значение каждой единичной клетки
А>на расстояние от неё до ближайшей нулевой клетки.

http://en.wikipedia.org/wiki/Distance_transform
Удачи
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.