Усреднеие изображения по времени

Ответить
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Усреднеие изображения по времени

Сообщение Chupakabra »

Добрый день.
Cуществует ли в Vison готовый алгоритм, реализующий следующее усреднение изображения. Предположим я получаю зашумленное изображение стационарного объекта. И хочу избавиться от шума. Есть мысль сдалать несколько снимков, и использую их "усреднить" яркость по всем изображеним. Нет ли изьяна вообще в таких рассуждениях?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Ход мыслей вполне верный. Готового алгоритма нет, но всё, что нужно для реализации - сложение да деление.
Обычно картинки складываются в накапливающий буфер по ходу получения с камеры - нет необходимости вычислять среднее на каждой итерации. Потом они делятся на количество накопленных картинок. Ну ещё преобразование форматов потребуется - восьмибитные картинки можно накапливать в шестнадцатибитном буфере, если ограничить общее количество до 256.
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Re: Усреднеие изображения по времени

Сообщение Chupakabra »

Андрей, спасибо за ответ.
Я так понял что в NI Vision Builder AI такое врятли сделать. Придется алгоритм в LabVIEW переводить.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Да может и можно в VBAI сделать. Цикл там относительно легко делается. Сумматор в Vision Assistant можно реализовать (я не помню, есть в AI арифметические операции или нет). Единственно - не уверен, будет ли шаг Assistant работать между итерациями и хранить аккумулирующее изображение - но можно попробовать. Будет слегка через одно место, но должно работать.
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Re: Усреднеие изображения по времени

Сообщение Chupakabra »

AndreyDmitriev писал(а):Да может и можно в VBAI сделать. Цикл там относительно легко делается. Сумматор в Vision Assistant можно реализовать (я не помню, есть в AI арифметические операции или нет). Единственно - не уверен, будет ли шаг Assistant работать между итерациями и хранить аккумулирующее изображение - но можно попробовать. Будет слегка через одно место, но должно работать.
Вот это интересно! В AI в шаг можно добавляется последовательность операций Vision Assistant. И там действительно есть оператор Average который работает с временным буфером (в AI можно создать переменную типа изображение, которая будет являться этим буфером). Т.е. насколько я понял, эта штука реализует функцию бегущее среднее, т.е. берет буфер и текущее изображение, вычисляет среднее и кладет опять в буфер?
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Ну если там Average есть - то совсем хорошо. Результат будут чуть отличаться от усреднения сложением делением, но незначительно. Надо будет поставить свежий VBAI да покрутить - я давно с ним не игрался.
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Re: Усреднеие изображения по времени

Сообщение Chupakabra »

AndreyDmitriev писал(а):Ну если там Average есть - то совсем хорошо. Результат будут чуть отличаться от усреднения сложением делением, но незначительно. Надо будет поставить свежий VBAI да покрутить - я давно с ним не игрался.
Для меня он сейчс панацея просто, время экономит. Позволяет быстро отладить алгоритм прежде чем переносить рабочую версию в лабвью.
Жаль, что массивы (строго говоря) в нем не поддерживаются как типы данных, т.е. если получаю массив частиц, в LabVIEW для пост-обработки их не передать уже.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Chupakabra писал(а): Жаль, что массивы (строго говоря) в нем не поддерживаются как типы данных, т.е. если получаю массив частиц, в LabVIEW для пост-обработки их не передать уже.
Да, есть такое дело.
Ну разве что вот:
http://decibel.ni.com/content/docs/DOC-19894
и вот
http://forums.ni.com/t5/Machine-Vision/ ... 072#M33868
Хотя и то и другое несколько через жо...
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Re: Усреднеие изображения по времени

Сообщение Chupakabra »

Использовал я Average-усреднение с промежуточным буфером (ОС). В общем получился рекурсивный фильтр, который действительно убирает шум, но не доконца.
Судя по всему формула (разностное уравнение, описывающее фильтр) у него такая Y=(1/2)Xi+(1/4)Xi-1+(1/8)Xi-2+.... т.е. значимость каждого предыдущего изображения падает вдвое при каждой итерации.

p.s. добавил еще 2 блока Average c обратной связью, шум вообще исчез, но алгоритм стал очень тормозным :)
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Chupakabra писал(а):Использовал я Average-усреднение с промежуточным буфером (ОС).
Коллега Чупакабра, а покажите, как вы это сделали. Я только что облазил весь VBAI c VA, но оператора Average в упор не увидел.
Аватара пользователя
Chupakabra

Tutorials
professional
professional
Сообщения: 341
Зарегистрирован: 21 янв 2009, 10:50
Награды: 1
Версия LabVIEW: 2012
Откуда: Москва
Поблагодарили: 1 раз

Re: Усреднеие изображения по времени

Сообщение Chupakabra »

Блок Operators в VA, в нем есть функция Average.
Вложения
average.png
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

Chupakabra писал(а):Блок Operators в VA, в нем есть функция Average.
А, теперь понятно, спасибо. Это только для чёрно-белых картинок работает, а для цветных NI поленился сделать.
ESeid

Автор
advanced
advanced
Сообщения: 150
Зарегистрирован: 30 мар 2011, 22:41
Награды: 1
Версия LabVIEW: 8.2-2013

Re: Усреднеие изображения по времени

Сообщение ESeid »

Господа, а зачем вам эти убогие и тормознутые действия с изображениями? Переводите изображение в прямоугольный числовой массив, а уж с ним быстро, надежно и качественно вытворяйте все, что хотите! А в финале - обратное преобразование в имидж. И все.
Аватара пользователя
Oleg B.

Activity Professionalism
leader
leader
Сообщения: 671
Зарегистрирован: 25 сен 2011, 11:30
Награды: 2
Версия LabVIEW: 5 .. 2016
Откуда: Israel

Re: Усреднеие изображения по времени

Сообщение Oleg B. »

ESeid писал(а):Господа, а зачем вам эти убогие и тормознутые действия с изображениями? Переводите изображение в прямоугольный числовой массив, а уж с ним быстро, надежно и качественно вытворяйте все, что хотите! А в финале - обратное преобразование в имидж. И все.
Полностью согласен с замечанием.
veni, vidi, phallomorphi
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1225
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2016
Откуда: Германия
Контактная информация:

Re: Усреднеие изображения по времени

Сообщение AndreyDmitriev »

ESeid писал(а):Господа, а зачем вам эти убогие и тормознутые действия с изображениями? Переводите изображение в прямоугольный числовой массив, а уж с ним быстро, надежно и качественно вытворяйте все, что хотите! А в финале - обратное преобразование в имидж. И все.
Полностью несогласен с замечанием. Во-первых, работа LabVIEW c "прямоугольными числовыми массивами" априори медленнее, чем с IMAQ изображениями. Одно только преобразование займёт кучу времени и неоправданно большое количество памяти. А во-вторых замечание вообще не имеет ни малейшего отношения к теме разговора, поскольку речь идёт о VBAI.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Vision / IMAQ»