m
melnik10Жел. 14, 2018, 6:20 Т.Ж.

Как считать шестнадцатеричный файл формата bt8

Как считать шестнадцатеричный файл формата bt8 в qt и использовать его для отображения в QGraphicsView?

размер файла 16МБ. . Это файл одного обзора радиолокационного изображения, необходимо отрисовать его в QGraphicsView.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

17
Evgenii Legotckoi
  • Жел. 14, 2018, 6:32 Т.Ж.

Добрый день, наверное.

У вас есть информация о структуре данных файлов формата bt8? Я, например, впервые слышу об этом формате.

А так, считываете файл в QByteArray и разбираете его побайтно или пачками байт, расшифровывая, что значит тот или иной байт или группа байтов.

    m
    • Жел. 14, 2018, 7:57 Т.Ж.

    Извините, добрый день. Примерно представляю структуру этого файла. 4105 байт соответствуют одной линейке. Линеек таких 1024. В итоге они формируют изображение. То есть необходимо отрисовывать линию с разной яркостью (разбитую на 4105) отсчетов.
    Думаю создать двумерный массив, с этими 16-ричными значениями. Или их необходимо переводить в 10-ричную систему для изменения яркости ?

      Evgenii Legotckoi
      • Жел. 14, 2018, 8:16 Т.Ж.

      Примерно , это в данном случае никак, к сожалению. У вас есть информация о том, что значит каждый байт в этом файле?

      Например в строках от 0000:0000 до 0000:0070 очевидно, какая-то служебная информация о самом файле. Наверняка где-то в конце есть и проверочная информация. Возможно, что даже контрольная сумма. Также каждый байт не обязательно будет означать яркость, возможно, что даже цвет, а рядом с ним яркость.

      У вас имеется какая-нибудь номенклатура на данный стандарт файла?

        m
        • Жел. 14, 2018, 8:35 Т.Ж.

        Да, первые 64 байта это служебная информация.

        На данный момент нет никакой номенклатуры. Постараюсь достать на днях.

          Evgenii Legotckoi
          • Жел. 14, 2018, 8:50 Т.Ж.
          • (өңделген)

          Постарайтесь достать.

          По сути ничего сложного в считывании подобного файла быть не должно, можно просто считывать поблочно всю нужную информацию.

          Я что-то подобное делал уже, но делал запись, но без понимания того, как устроен сам файл - это же будет не считывание, а реверс-инжениринг, что несколько различные по сложности задачи, примерно на порядок. Если у вас есть возможность достать описание формирования структуры, то задача значительной упростится, потому, что всё остальное уже будет рутиной. Можно будет просто подготовить QPixmap и зарисовать его в цикле всеми этими данными в самом простом варианте.

            m
            • Жел. 14, 2018, 11:26 Т.Ж.

            Я проанализировал этот файл и нашел последовательность. Это сиганл, который програли через аналого-цифровой преобразователь. И могу объяснить как он устроен. Могу ли я работать с этим файлом прямо через отладчик? А то я экспортировал это в текстовый файл(его часть) и это не очень удобно.

              Алексей Внуков
              • Жел. 14, 2018, 5:19 Т.Қ.
              • (өңделген)

              А не пробовали данные, в том виде как получаете, сразу пихнуть в QPixmap? Как то была задача вытягивать изображение в битмапе по адресу в памяти, долго крутил чтобы первый ряд байтов совпал и вывело правильное изображение, в результате стандартный конструктор оказалось сам все правильно определял и рисовал

              п.с. могу поискать проект и выложить варианты с которыми получалось собрать картинку

                m
                • Жел. 15, 2018, 1:32 Т.Ж.
                • (өңделген)

                Можете скинуть пожалуйста, может будет какой-то результат с этого. Мне необходимо его вывести на экран, а затем влиять на него различными режимами. На GraphicsView я запускаю рандомные цели и измеряю их координаты (полярные координаты). А хотелось наложить реальную обстановку.

                  Evgenii Legotckoi
                  • Жел. 15, 2018, 4:51 Т.Ж.

                  Не пробовал такого, получится, расскажете? ))

                  Это сигнал, который прогнали через аналого-цифровой преобразователь

                  Тогда нужно знать, какие уровни там были и координаты точек.

                    m
                    • Жел. 15, 2018, 5:17 Т.Ж.

                    Евгений , я считал сигнал и забил данные в массив от одной линейки. Как мне нарисовать линию разной яркости по этим уровням? Всего 4096 отрезков. Затем хочу нарисовать 4096 линий в круг различной яркости и получится изображение.

                      Evgenii Legotckoi
                      • Жел. 15, 2018, 5:19 Т.Ж.

                      если честно, я даже не знаю, что за график вы используете, вы хотите разные уровни этого графика показать?

                        m
                        • Жел. 15, 2018, 6:22 Т.Ж.

                        Определенному уровню напряжения соответствует яркость точки. 255 - соотвествует ярко-желтому цвету, в районе 120 к черному. Необходимо отрисовать эти линии на GraphicsView. Сейчас начал это делать, на сцену кидаю drawEllipse в разных координатах, но у меня линия делиться на 4096, а в graphicsview заходит максимум 500, все зависит от пикселей в экране. Как мне это этого можно уйти?

                          Evgenii Legotckoi
                          • Жел. 15, 2018, 6:28 Т.Ж.
                          • Жауап шешім ретінде белгіленді.

                          но у меня линия делиться на 4096, а в graphicsview заходит максимум 500, все зависит от пикселей в экране. Как мне это этого можно уйти?

                          4096/500~= 9

                          Только так, относительным делением,
                          а потом показываете точки с этим шагом. либо просто делить 4096 на 9 и отрисовывать всё с перекрытием.

                            m
                            • Жел. 15, 2018, 7:17 Т.Ж.
                            • (өңделген)

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

                              m
                              • Жел. 17, 2018, 12:47 Т.Қ.

                              Подскажите пожалуйста. Возникла друга пооблема.. Создал qGraphicsItem, который состоит из 4096 эллипсов, получилась линия разной яркости. Затем решил создать полное изображение, посредством добавления этих объектов повернутых на определенный угол. При создании сотого объекта и далее , программа начинает сильно тормозить... Как эту проблему можно решить ?

                                Evgenii Legotckoi
                                • Жел. 17, 2018, 12:55 Т.Қ.

                                Просчитывать перекрытие точек и не отрисовывать те точки, которые перекрываются другими.

                                У вас их просто слишком много, нужно смотреть, какие можно не отрисовывать без потери информативности графика.

                                  m
                                  • Жел. 17, 2018, 2:03 Т.Қ.

                                  Спасибо, попробую!

                                    Пікірлер

                                    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                    Кіріңіз немесе Тіркеліңіз
                                    AD

                                    C++ - Тест 004. Указатели, Массивы и Циклы

                                    • Нәтиже:50ұпай,
                                    • Бағалау ұпайлары-4
                                    m
                                    • molni99
                                    • Қаз. 25, 2024, 10:37 Т.Қ.

                                    C++ - Тест 004. Указатели, Массивы и Циклы

                                    • Нәтиже:80ұпай,
                                    • Бағалау ұпайлары4
                                    m
                                    • molni99
                                    • Қаз. 25, 2024, 10:29 Т.Қ.

                                    C++ - Тест 004. Указатели, Массивы и Циклы

                                    • Нәтиже:20ұпай,
                                    • Бағалау ұпайлары-10
                                    Соңғы пікірлер
                                    ИМ
                                    Игорь МаксимовҚар. 22, 2024, 8:51 Т.Ж.
                                    Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                    Evgenii Legotckoi
                                    Evgenii LegotckoiҚаз. 31, 2024, 11:37 Т.Ж.
                                    Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                    A
                                    ALO1ZEҚаз. 19, 2024, 5:19 Т.Ж.
                                    Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                    ИМ
                                    Игорь МаксимовҚаз. 5, 2024, 4:51 Т.Ж.
                                    Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                    d
                                    dblas5Шілде 5, 2024, 8:02 Т.Ж.
                                    QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                    Енді форумда талқылаңыз
                                    m
                                    moogoҚар. 22, 2024, 4:17 Т.Ж.
                                    Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                                    Evgenii Legotckoi
                                    Evgenii LegotckoiМаусым 24, 2024, 12:11 Т.Қ.
                                    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                    t
                                    tonypeachey1Қар. 15, 2024, 3:04 Т.Ж.
                                    google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                    NSProject
                                    NSProjectМаусым 4, 2022, 12:49 Т.Ж.
                                    Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                    Бізді әлеуметтік желілерде бақылаңыз