Сохранение последовательности картинок.

Работа с файлами и базами данных
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

Re: Сохранение последовательности картинок.

Сообщение Данила Деветьяров »

dadreamer писал(а):
Данила Деветьяров писал(а):Дело в том, что у меня есть двумерный массив - это яркости пикселей, а мне из него надо сделать 3х-мерный, чтобы индексами были номера кадров, или хотя бы несколько файлов, в каждом из которых - двумерный массив, а файлы уже по порядку номера кадра
Ну так используйте Build Array, на входы которого подайте ваш 2D массив, а также новый массив с индексами кадров. Только смотрите, чтоб галка Concatenate Inputs у Build Array не стояла в настройках.
Да, только он выдает на выходе двумерный массив, вместо трехмерного, а галка Concatenate Inputs не убирается, если ему скармливать двумерный массив.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Сохранение последовательности картинок.

Сообщение IvanLis »

Данила Деветьяров писал(а):Дело в том, что у меня есть двумерный массив - это яркости пикселей, а мне из него надо сделать 3х-мерный, чтобы индексами были номера кадров, или хотя бы несколько файлов, в каждом из которых - двумерный массив, а файлы уже по порядку номера кадра
Смотрите пример, если Вы и после этого не поймете, что и как делать, я тут уже бессилен :dntknw: .
ImgArray.png
Здесь мы имитируем видео (состоит из 3-х кадров), ну и для самоконтроля и наглядности показываем их).
Потом переводим в 2D массив, из них формируем 3D массив и записываем в бинарный файл.
Открываем файл и восстанавливаем изображения.
1.png
ImgArray.vi
lv2010
(21.24 КБ) 136 скачиваний
-----------------------------
Данила Деветьяров писал(а):Видео сохранять умею, правда там скорость воспроизведения почему-то больше, чем в жизни )
:labview: не проигрыватель, по этому и отображает видео как последовательность кадров с максимально возможной для компа частотой.
Установите задержку в цикл, что бы она обеспечивала необходимую частоту смены кадров. В примере 1 сек задержка, для наглядности. Если видео снято со скоростью 25 кадров/сек, то задержка 40мс.
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

Re: Сохранение последовательности картинок.

Сообщение Данила Деветьяров »

Вот как адаптировал по себя (Прогу прислать не могу, она огромная, и нужна камера) Массив заполняет нулями и все. Что не так сделал?
Безымянный.jpg
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 127 раз
Контактная информация:

Re: Сохранение последовательности картинок.

Сообщение dadreamer »

Данила Деветьяров писал(а):Да, только он выдает на выходе двумерный массив, вместо трехмерного, а галка Concatenate Inputs не убирается, если ему скармливать двумерный массив.
И правда, не хочет складываться, просто потому, что не знает, что делать с 1D массивом. Вот код посложнее, но точно работающий:
Change_2D_To_3D.png
Сперва переделываем 2D массив в 3D с пустым третьим измерением, потом перебирая 3-й индекс (он называется page в терминологии :labview:), записываем туда исходный 2D массив 5 раз. У вас вместо исходного массива должны быть ваши двумерные кадры, вместо пяти - количество этих кадров. Надеюсь, идея понятна.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5464
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 87 раз

Re: Сохранение последовательности картинок.

Сообщение IvanLis »

Данила Деветьяров писал(а):Массив заполняет нулями и все. Что не так сделал?
Только не нулями наверное, а последний кадр сохраняться всего один будет.

Вам нужно 3D массив гнать в своем (основном цикле).
Накапливать его, а после выхода из цикла, сохранять в файл.

Складывается впечатление, что Вы понятия не имеете, о том что делаете. Идете методом проб и ошибок.
Если не можете представить в голове алгоритм и структуру программы, то хотя бы на листике нарисуйте алгоритм и поймете, что делаете не так!

Ошибки у Вас чисто алгоритмические и с :labview: никак не связаны.
Ответить

Вернуться в «Сохранение данных»