Алгоритм для конкретного преобразования 1-битных координат растрового изображения - PullRequest
0 голосов
/ 21 октября 2018

Я знаю, что переполнение стека - это многолюдное место, поэтому я постараюсь быть кратким.Я программист-любитель, работающий в маленькой карманной нише мира программирования;мой внешний опыт ужасно ограничен.

Моя дилемма заключается в следующем: у меня есть 1-битная 2D-матрица, состоящая из произвольных данных, предназначенных для представления включенных / выключенных пикселей на экране.Рассмотрим пример для воображения:

11110111101111111100
10111111111111111111
11011111111111011111
11111010111111111111
11111111011111111111
11111111111100011111
11111011011110001101

Это действительно плохой пример для моих точных целей, но он служит вопросу ОК. Как программист, я смотрю на эту матрицу данных изображения и рассматриваю способы без потерьсжать это, возможно, в меньшую, 1D матрицу.Я понимаю, что большие части элементов, определяющих «включенные» пиксели (это различие довольно произвольно, отображение «включенных» пикселей, выключенных «для создания изображения», такое же, как отображение «выключенных» пикселей, включенных «включенных»).создать одно и то же изображение) может быть воспринято разумом как сплошные прямоугольники «на» пикселях.Рассмотрим:

11110111101111111100
10111111111111111111
11011111111111011111
xxxxx010111111111111
xxxxx111011111111111
xxxxx111111100011111
xxxxx011011110001101

Хранение координат прямоугольника, определяющего прямоугольное сечение элементов «на» пикселях (и затем последовательное сохранение этих координат в одномерном массиве), кажется наилучшим подходом к этой проблеме, дляпозже, чтобы перерисовать то же изображение, я могу просто просканировать получившийся одномерный массив и построить все прямоугольники.

Мой вопрос: Существует ли метод или алгоритм для выполнения этого конкретного вида преобразования, и который наиболее эффективен? Для этого рассмотрим алгоритм Брезенхема, который, возможно, является наиболееэффективный в том, что он делает, и многие другие алгоритмы там.

Я в своем невежестве за пределами своей ниши хотел бы предположить, что существовало множество небольших алгоритмических задач, подобных этим, решаемых десятилетиями назад безумными компьютерными учеными, которыев настоящее время окружают себя магнитной лентой и вакуумными трубками.Это, кажется, имеет место для многих алгоритмических препятствий, подобных этим, с которыми я часто сталкиваюсь, то есть они были решены задолго до моего времени.

1 Ответ

0 голосов
/ 21 октября 2018

Сжатие изображения никогда не бывает точным.Уровень сжатия во многом зависит от самого изображения.Таким образом, даже если вы ловко «откроете» новый алгоритм, он иногда будет успешным, тогда как в других случаях он будет работать плохо.
Это связано с каким-то случайным фактором в природе каждого изображения.

Существует старый, но все еще действующий сайт с информацией о значении: CFAQ

About your "алгоритм прямоугольника, есть что-то близкое к нему: алгоритм PCIF

...