Вопрос

У кого-нибудь есть идеи, как я могу реализовать это?Я хотел бы иметь функцию в основном так же, как Inboly в MatLab или инструмент «Разделы многоугольника» в ImageJ, где вы нажимаете, чтобы сформировать многоугольный раздел, а затем каждый узел можно регулировать и т. Д. Я также хотел бы иметь доступДля этой функции из Qt с тех пор, как я пытаюсь сделать GUI для небольшой программы, которую я написал.

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

Это было полезно?

Решение

Я думаю, вам нужно будет кодировать это самостоятельно. Существует отличный пример в Программирование C ++ GUI с Qt 4 Книга (есть PDF копия, плавающая вокруг онлайн; Я думаю, что это законно), где они показывают, как создать диаграмму с узлами и ссылками. Глава называется «рендеринг на основе элементов с графическим видом».

Основная идея состоит в том, что у вас есть несколько узлов перегруженных, которые являются qgraphicsites / a> с флагом ItemIsMovable, установленным на true, а затем некоторые ссылки, которые их соединяют, которые являются qgraphicslineTems . Все они попадут в композитный QGraphicsItem, представляющий ROI, и все они попадут в qgraphicscensscene , который будет отображаться на qgraphicsview .

Нижняя строка: нет встроенной копии функции MATLAB, но все инструменты для вас.

Другие советы

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

Ваш инструмент выбора, вероятно, должен быть подклассом QGraphicsObject, хостинг углы многоугольника как дочерние элементы, а также QGraphicsPolyGonItem ниже углов обновляются всякий раз, когда пользователь ReadSusts выделение. Поскольку QGraphicsObject наследует Qobject, вы можете излучать сигналы с аргументом QPolygonf или Qpolygon, когда выделение изменяется, информируя другие части вашего приложения

Эта демонстрация должна быть хорошим примером нужной вам нужной функции.

Qt PathStroke Demo

(ну, пример реализует рисунок и перетаскивание контрольных точек с нуля. Я уверен, что вы можете сделать это, используя qgraphicsellipseitem вместо этого и реагировать на их изменение положения)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top