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

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

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

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

Вопрос на стыке сохранения данных и видеообработки. Мне нужно сохранять последовательность кадров, переводя предварительно кадры в 2д массив из значений яркостей пикселей (Image to array) - эту проблему решил. Теперь мне надо это как-то превратить массив этих 2д массивов, где индексом будет номер кадра, или в 3д массив, и потом эти данные сохранить на диск. Что делать?
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

Первое, что в голову приходит - Write To Spreadsheet File, но он позволяет сохранить только 1D или 2D массив. Поэтому индекс надо записывать куда-то в другое место, например, в имя файла. Тогда у вас будет куча файлов-кадров :) Можно, наверное, как-то иначе извернуться.
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Данила Деветьяров писал(а):Теперь мне надо это как-то превратить массив этих 2д массивов, где индексом будет номер кадра, или в 3д массив, и потом эти данные сохранить на диск. Что делать?
Формируйте 3D массив, где третий индекс и есть номер кадра.
И пишите в бинарный файл, размеры массива, а потом сам массив.
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

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

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

dadreamer писал(а):Первое, что в голову приходит - Write To Spreadsheet File, но он позволяет сохранить только 1D или 2D массив. Поэтому индекс надо записывать куда-то в другое место, например, в имя файла. Тогда у вас будет куча файлов-кадров :) Можно, наверное, как-то иначе извернуться.
Спасибо) Тоже способ. Вообще идея в том, чтобы записывать эту последовательность для дальнейшей обработки, например для взаимной кореляции между отдельными пикселями, может из видео как-то можно достать эту информацию? Видео сохранять умею, правда там скорость воспроизведения почему-то больше, чем в жизни )
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

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

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

IvanLis писал(а):
Данила Деветьяров писал(а):Теперь мне надо это как-то превратить массив этих 2д массивов, где индексом будет номер кадра, или в 3д массив, и потом эти данные сохранить на диск. Что делать?
Формируйте 3D массив, где третий индекс и есть номер кадра.
И пишите в бинарный файл, размеры массива, а потом сам массив.
Извините за глупый вопрос, но как это сделать?)
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

А почему бы не сохранять сразу в графическом формате (png или bmp)?
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

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

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

dadreamer писал(а):А почему бы не сохранять сразу в графическом формате (png или bmp)?
Потому что потом не получится эти данные нужным образом обработать. А можно в LabVIEW вставить видеофайл, указать пиксель, функция выдаст график изменения его яркости?
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Данила Деветьяров писал(а):Потому что потом не получится эти данные нужным образом обработать. А можно в LabVIEW вставить видеофайл, указать пиксель, функция выдаст график изменения его яркости?
Ну Вы же научились преобразовывать кадр в массив, потом накапливаете значение пикселя по мере "воспроизведения" видео и строите график.
Данила Деветьяров писал(а):Извините за глупый вопрос, но как это сделать?)
если время будет накидаю пример
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Все оказалось даже проще :wink: , там автоматом пишется заголовок (размер массива).
1.png
3D array.vi
lv2010
(15.06 КБ) 160 скачиваний
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

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

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

dadreamer писал(а):Первое, что в голову приходит - Write To Spreadsheet File, но он позволяет сохранить только 1D или 2D массив. Поэтому индекс надо записывать куда-то в другое место, например, в имя файла. Тогда у вас будет куча файлов-кадров :) Можно, наверное, как-то иначе извернуться.
Наткнулся вот на какую проблему. Где взять spreeadsheet file? Он просит его вставить.
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Данила Деветьяров писал(а):Наткнулся вот на какую проблему. Где взять spreeadsheet file? Он просит его вставить.
:crazy: его видимо указать нужно, т.е. файл, куда будите писать

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

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

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

IvanLis писал(а): :crazy: его видимо указать нужно, т.е. файл, куда будите писать

используйте бинарные файлы он быстрее и меньше избыточность
Не хочет он писать в бинарный файл, отказывается его из диалога принимать даже не хочет, как и любой другой, в хелпе указаны возможные форматы, их он тоже некушает

IvanLis писал(а):Все оказалось даже проще :wink: , там автоматом пишется заголовок (размер массива).
А что, если я не могу поместить источник массива внутрь цикла? смело всю программу туда пихать?
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Данила Деветьяров писал(а):Не хочет он писать в бинарный файл, отказывается его из диалога принимать даже не хочет, как и любой другой, в хелпе указаны возможные форматы, их он тоже некушает
Что значит не хочет, я же дал Вам работающий пример?
Данила Деветьяров писал(а):А что, если я не могу поместить источник массива внутрь цикла? смело всю программу туда пихать?
Я массив формирую, а у вас он уже имеется...
Его и нужно Вам записывать.
Только тип данных при чтении установите свой.
Данила Деветьяров
beginner
beginner
Сообщения: 18
Зарегистрирован: 01 окт 2012, 14:09
Версия LabVIEW: 11
Контактная информация:

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

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

IvanLis писал(а):
Данила Деветьяров писал(а):Не хочет он писать в бинарный файл, отказывается его из диалога принимать даже не хочет, как и любой другой, в хелпе указаны возможные форматы, их он тоже некушает
Что значит не хочет, я же дал Вам работающий пример?
Нет, это про spreadsheet file было, с тем все нормально.
Данила Деветьяров писал(а):А что, если я не могу поместить источник массива внутрь цикла? смело всю программу туда пихать?
Я массив формирую, а у вас он уже имеется...
Его и нужно Вам записывать.
Только тип данных при чтении установите свой.
Дело в том, что у меня есть двумерный массив - это яркости пикселей, а мне из него надо сделать 3х-мерный, чтобы индексами были номера кадров, или хотя бы несколько файлов, в каждом из которых - двумерный массив, а файлы уже по порядку номера кадра
Аватара пользователя
dadreamer

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

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

Сообщение dadreamer »

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

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