Я знаю, что переполнение стека - это многолюдное место, поэтому я постараюсь быть кратким.Я программист-любитель, работающий в маленькой карманной нише мира программирования;мой внешний опыт ужасно ограничен.
Моя дилемма заключается в следующем: у меня есть 1-битная 2D-матрица, состоящая из произвольных данных, предназначенных для представления включенных / выключенных пикселей на экране.Рассмотрим пример для воображения:
11110111101111111100
10111111111111111111
11011111111111011111
11111010111111111111
11111111011111111111
11111111111100011111
11111011011110001101
Это действительно плохой пример для моих точных целей, но он служит вопросу ОК. Как программист, я смотрю на эту матрицу данных изображения и рассматриваю способы без потерьсжать это, возможно, в меньшую, 1D матрицу.Я понимаю, что большие части элементов, определяющих «включенные» пиксели (это различие довольно произвольно, отображение «включенных» пикселей, выключенных «для создания изображения», такое же, как отображение «выключенных» пикселей, включенных «включенных»).создать одно и то же изображение) может быть воспринято разумом как сплошные прямоугольники «на» пикселях.Рассмотрим:
11110111101111111100
10111111111111111111
11011111111111011111
xxxxx010111111111111
xxxxx111011111111111
xxxxx111111100011111
xxxxx011011110001101
Хранение координат прямоугольника, определяющего прямоугольное сечение элементов «на» пикселях (и затем последовательное сохранение этих координат в одномерном массиве), кажется наилучшим подходом к этой проблеме, дляпозже, чтобы перерисовать то же изображение, я могу просто просканировать получившийся одномерный массив и построить все прямоугольники.
Мой вопрос: Существует ли метод или алгоритм для выполнения этого конкретного вида преобразования, и который наиболее эффективен? Для этого рассмотрим алгоритм Брезенхема, который, возможно, является наиболееэффективный в том, что он делает, и многие другие алгоритмы там.
Я в своем невежестве за пределами своей ниши хотел бы предположить, что существовало множество небольших алгоритмических задач, подобных этим, решаемых десятилетиями назад безумными компьютерными учеными, которыев настоящее время окружают себя магнитной лентой и вакуумными трубками.Это, кажется, имеет место для многих алгоритмических препятствий, подобных этим, с которыми я часто сталкиваюсь, то есть они были решены задолго до моего времени.