|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|
Как изогнуть изображение?19.10.2025, 16:05. Показов 1606. Ответов 23
Метки нет (Все метки)
Есть длинное прямоугольное изображение и его надо изогнуть на нужный угол, те сделать его волнистым по определенному закону, чтобы например изображение изогнулось и пересекло само себя и подобное,
как такое сделать проще ? Я так понимаю вся суть это преобразовать вертикальный прямоугольник в наклонную трапецию. Добавлено через 58 минут Интересно если дать задачу какому нить ИИ написать код, например тому же supermaven ? В сях напишет ?
0
|
|
| 19.10.2025, 16:05 | |
|
Ответы с готовыми решениями:
23
Отрисовка изображения поверх канвы (изображения) и вращение изображения Изменение яркости контрастности изображения. Бинаризация изображения |
|
|
||
| 19.10.2025, 16:49 | ||
|
Доброго.
Если речь идет об прямоугольнике с простой заливкой, то задача вполне реализуемая. А вот если это именно изображение, то все сложно))))))...озвучиваю это потому, что писал функции обычного поворота изображения вокруг своей оси. Добавлено через 1 минуту
0
|
||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
||
| 19.10.2025, 16:54 [ТС] | ||
|
Ну в принципе как я предлагал можно преобразовывать прямоугольник в наклонную трапецию а недостающие точки вычислять по соседним, но это решение в лоб. Разбиваем весь поворот на кучу мелких повернутых трапеций и вуаля. Про ИИ прям все трындят на всех форумах что творит чудеса, достаточно сказать что делать и все готово, комментарии только расставить ) сам не пробовал правда. Например "преобразовать прямоугольное изображение в наклонную трапецию" )))
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 19.10.2025, 20:00 | |
|
0
|
|
|
4845 / 1412 / 115
Регистрация: 21.04.2013
Сообщений: 8,590
|
||||||||||||
| 19.10.2025, 23:49 | ||||||||||||
|
Пример "волновой изгиб":
2
|
||||||||||||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
||
| 20.10.2025, 00:45 [ТС] | ||
|
Угол изгибания задается координатами gps, те идет сканирование местности, в какой то момент сканер начинает поворачивать например направо и с каким то радиусом разворачивается и пересекает свою же предыдущею траекторию, те скан как бы завязывается в узел. Угол поворота задается с каким то таймингом в каждый текущий момент. Вот на рисунке представьте что зеленая линия это длинное изображение, на деле оно прямоугольное, но в реальности оно должно быть изогнуто как нарисовано. Те со сканера идет прямоугольное изображение, его надо изогнуть как на рисунке. Угол поворота получаем скажет через каждые 10 пикселей, всего 1600 пикселей.
0
|
||
|
4845 / 1412 / 115
Регистрация: 21.04.2013
Сообщений: 8,590
|
||||||
| 20.10.2025, 01:14 | ||||||
2
|
||||||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|
| 20.10.2025, 12:09 [ТС] | |
|
Это ИИ написал ?
А это что такое не понял trajectory.size() ? какая то функция /трехмерная структура / массив ? Кстати при повороте там не прямоугольный треугольник получается а равнобедренный иначе изображение будет растягиваться. Я так понимаю главное не перерисовать существующие точки и заполнить пустые места чем то.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 21.10.2025, 22:01 | ||
|
Такая операция явно будет искажать данные. Если добавить левые данные, например из справочника Потлочного, то искажения будут ещё больше. Почему не растягивать изображение по каждой линии? Как в обычном масштабировании изображения? Осталось решить сколько точек изображения брать для растягивания.
0
|
||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
||
| 22.10.2025, 00:16 [ТС] | ||
|
Растягивать изображение нужно, просто в примере выше для поворота используется прямоугольный треугольник а правильнее равнобедренный, меньше будет искажений. И вообще без треугольников, просто берем часть изображения и через CopyRect копируем его в новые координаты, повернутые на нужный угол, потом сдвигаемся на нужное кол-во пикселей и опять остаток копирует в следующие координаты. Все это нужно чтобы правильно поворачивать сканы местности, тк ГИС очень хреново с этим справляется, идея была самому все разворачивать а потом уже выводить на ГИС как прямоугольник.
0
|
||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|
| 22.10.2025, 00:55 [ТС] | |
|
По типу такого
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|
| 22.10.2025, 11:36 [ТС] | |
|
Даже лучше придумал, делим изображение на вертикальные узкие прямоугольники и потом копируем по очереди их с нужным поворотом.
0
|
|
| 23.10.2025, 00:08 | |||||||
|
angle - полный угол поворота в радианах (по скриншоту d2r(75)) cntr - центр поворота в пикселях (по скриншоту (0, 10)) Вычисляем размер нового имеджа x_size_new = y_size_old + cntr.y y_size_new = (y_size_old + cntr.y) * (1.0 + sin(angle)) Основной цикл: проходим "по углу" строка за строкой, ищем какая точка исходного соответствует новой. Псевдокод
0
|
|||||||
|
91 / 58 / 14
Регистрация: 16.11.2018
Сообщений: 274
|
|
| 23.10.2025, 00:40 | |
|
Триангуляция.
Так делают в 3D разбивают что то на треугольники после этого над ними легко выполняются линейные преобразования.
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|||
| 23.10.2025, 12:25 [ТС] | |||
|
Добавлено через 51 секунду
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 23.10.2025, 18:46 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
|||
| 23.10.2025, 19:42 [ТС] | |||
|
в моем с прямоугольниками только нужные прямоугольники тк угол поворота не постоянен а меняется от каждого пикселя к пикселю. Добавлено через 1 минуту
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 23.10.2025, 21:00 | |||
|
Так и повороты, непостоянные, меняются от поворота к повороту) Тут где то логическая несостыковка, если до такого скатилось. И это где то в ТЗ. Добавлено через 6 минут whale2, ты хоть когда то видел трансформацию статического тела с угловым поворотом? Что это за процесс? То что на изображениях от известного коня стендапера Igor3D, это лишь раздумия на тему. На самом деле это совсем другое. Если нужно не повернуть(что само собой очевидно), а трансформировать с поворотом, то это совсем другая операция. Это значит что одна сторона будет ужиматься у противоположная растягиваться. И никакое Эту трансформацию никак не выполнить на потоковых данных.(что читается у тебя между строк) То есть, ещё раз проверь входные данные и что от тебя требуется.
0
|
|||
|
1 / 1 / 0
Регистрация: 20.10.2011
Сообщений: 227
|
||
| 24.10.2025, 00:05 [ТС] | ||
|
Можно взять вообще прямоугольник в 1-2 пикселя, см рисунок, белые области заполняем средними значениями. Просто функция копирования области будет работать быстрее чем рисовать попиксельно. Нет тут никаких потоковых данных, не додумывайте то чего нет. Все что нужно я описал.
0
|
||
| 24.10.2025, 00:05 | |
|
Помогаю со студенческими работами здесь
20
Загрузка изображения в Image с сохранении соотношения сторон изображения Как сделать окно (окно домика) в пространстве, как на изображении?
Как сохранить изображение в файл? Изображение, как поле класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|