|
0 / 0 / 0
Регистрация: 25.02.2015
Сообщений: 61
|
|
Алгоритм автоматической сборки пазла06.08.2018, 21:26. Показов 13109. Ответов 7
Метки нет (Все метки)
Всем привет,
Есть игра пазлы, которая разбирает картинку на блоки и позволяет их перемещать. Существует ли способ создать алгоритм автоматической сборки пазла обратно? Но при условии что этот алгоритм ничего не знает про изначальную картинку, т.е. на вход алгоритма подается только набор картинок и ничего не более. Разве это возможно?
0
|
|
| 06.08.2018, 21:26 | |
|
Ответы с готовыми решениями:
7
Реализация сборки пазла с использованием Drag'N'Drop (чистый JavaScript) Создать алгоритм автоматической нумерации плиток для укладки дорожек Алгоритм сборки панорамного фото |
|
|
|
| 08.08.2018, 06:08 | |
|
Есть куча вопросов - игра на шарпе? Т.е. вам нужно как-то выцепить из нее изображения пазлов, для условного черного ящика -- та еще задача. - пазлы можно соеденить только единым способом? В противном случае вам прийдется писать ИИ, которьій шарит что такое "картинка". - игра внутри себя знает, какая часть с какой соединяется? Если выудить именно эту инфу, то собрать уже не составит труда. Но это при условии, что валидация "присоединения" не происходит на сервере.
0
|
|
|
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
|
|
| 09.08.2018, 05:47 | |
|
alexandro12, предположительно, это возможно. Каждый пазл должен сходиться с другим пазлом по двум условиям:
1) Геометрическое совпадение - пазл выбирается только такой, который может быть физически присоединён с учётом фигуры предыдущего пазла. 2) Каждый пазл содержит в себе часть дробной картинки, когда будет получен вариант подходящих пазлов к пазлу из 1го варианта - можно сравнивать границы. Если границы пазлов по одним координатам совпадают по цвету, то вероятно, эти пазлы рядом. Вообще алгоритм обещает быть сложным. Предположительно будет строиться дерево подходящих пазлов и оценка каждого элемента этого дерева по вероятности - простор для решений просто огромен. Можно выдвигать на олимпиадную задачу)))
0
|
|
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||||||
| 09.08.2018, 12:30 | ||||||
|
В простейшем случае, когда элементы пазла - прямоугольники одинаковых размеров, можно попробовать воспользоваться жадным алгоритмом. Для оценки, насколько хорошо стыкуются два куска, можно, как предложили выше, сравнивать пикселы на границе этих кусков.
Суть алгоритма: перебором фиксировать каждый кусок в верхнем левом углу картинки. На каждом шаге выбирать такую смежную с уже фиксированными кусками ячейку, для которой наиболее подходящий кусок как можно сильнее отличается по "подходимости" от второго наилучшего куска. Ну и фиксировать в этой ячейке лучший кусок, и так далее, пока все ячейки не станут зафиксированы. Поскольку это был перебор, надо выбрать лучшую из всех получившихся картинок. Опробовал этот алгоритм на одной картинке, разбив её на 100 кусков. Верный результат получил меньше чем через минуту. Код: Кликните здесь для просмотра всего текста
1
|
||||||
|
0 / 0 / 0
Регистрация: 24.10.2020
Сообщений: 3
|
||||||
| 24.10.2020, 22:02 | ||||||
|
Пытаюсь реализовать данный алгоритм от TopLayer на WPF, однако он срабатывает через раз и не всегда корректно.
Уже второй день не могу понять, где допустил ошибку. Программа, ничего не зная про алгоритм разрезания исходного изображения, должна собрать его. Буду очень благодарен за любой совет
0
|
||||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 25.10.2020, 07:50 | |
|
Dragon4ik, если "через раз" означает на разных картинках то ничего удивительного.
На стыках не должно быть "разрывов" - резких изменений цвета. Чем больше таких точек тем больше вероятность что картинка соберется не так как ожидается.
0
|
|
|
0 / 0 / 0
Регистрация: 24.10.2020
Сообщений: 3
|
|
| 25.10.2020, 11:35 | |
|
nicolas2008, Смисл в том что, работает оно через раз с одним изображением в зависимости от количества фрагментов. И я не понимаю, как тогда разрезать изображение, чтоби между фрагментами не било резкого разрива пикселей(я просто использовал CroppedBitmap и указивал область, которую нужно вирезать)
0
|
|
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 25.10.2020, 14:51 | |
|
Dragon4ik, сам этот алгоритм основан на поиске похожести цветов на стыках. Наверное можно как то его подтюнить, усреднять цвета из нескольких крайних рядов например, но 100% результата все равно не будет.
Представь себе шахматную доску разрезанную ровно по клеткам, или абстрактрую картину с хаотичными ломаными линиями - тут оригинал не может быть восстановлен в принципе, даже человеком.
1
|
|
| 25.10.2020, 14:51 | |
|
Помогаю со студенческими работами здесь
8
Кубик Рубика алгоритм сборки Алгоритм сборки пирамидки Мефферта Меню из пазла Сборка пазла в Android Хочу собрать алгоритм сборки кубика-рубика по этой книжке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|