Вашему вниманию предлагается небольшая заметка, посвящённая особенностям хранения одноканальных (серых) 16 бит изображений (как беззнаковых, так и знаковых) в PNG формате. В некоторых случаях интенсивности пикселей, получаемые из такого файла могут не соответствовать изначальным интенсивностям, под катом мы заглянем во внутренности PNG файла и разберёмся, почему так происходит.
LabVIEW *
Среда разработки и платформа
Новости
О хранении изображений в памяти с выравниванием
В разговорах с коллегами, а также по отдельным постам на форумах я заметил, что даже относительно опытные разработчики порой не достаточно глубоко понимают особенности хранения изображений в памяти. Если вы знаете, что такое выравнивание на границу 64-x байт, а также термины типа «длина или шаг строки (LineWidth/StepWidth, Stride)», «зазоры выравнивания (Alignment Gaps)», кроме того в курсе размеров линий кэша и страниц памяти на вашем компьютере, то вам, вероятно, не будет интересно, а остальные, особенно те, кто интересуется обработкой изображений — могут ознакомиться с предлагаемым материалом, и, возможно найдут для себя что-то новое и полезное. Под катом будет немножко кода на Си и ассемблере, пара LabVIEW скриншотов, предполагается также, что у читателя есть базовые знания OpenCV. Для экспериментов понадобится компьютер с камушком, поддерживающим AVX2.
Как жесткую программную систему превратить в гибкую или Двадцать лет спустя
В этой статье хочу поделиться идеей разработки табличного скрипта, который позволил жесткую логику тестирования на клиенте заменить на гибкую логику скрипта, хранящегося в базе данных. Скрипт поддерживает циклы , прямую и косвенную адресацию, установку параметров тестирования прямо из скрипта, позволяет работать в пошаговом режиме, проводить отладку операций, делать паузу и остановку и т д.
Считаем медиану быстрее numpy
Нетрадиционный способ вычисления медианы массива значений с плавающей точкой при помощи нескольких проходов по исходному массиву по словам, начиная с более значащих, с использованием целочисленной арифметики, что даёт возможность в некоторых случаях несколько обогнать по скорости "традиционные" классические алгоритмы.
Истории
Устранение “шумов” LabVIEW при приеме USB/СОМ данных
Введение
Синхронный прием данных программой LabVIEW через линию USB/СОМ работает достаточно хорошо, если принимаемые данные не содержат периодических фрагментов.
При обнаружении таких фрагментов LabVIEW вставляет «шумовые» байты и тем самым искажает принимаемый сигнал.
В этой работе рассмотрена причина появления шумов и вариант обеспечения «бесшумового» приема COM данных.
Состояние проблемы
На Рисунок 1 показана схема LabVIEW интерфейса, который каждый 10 мс такт посылает в СОМ порт запрос (один байт ASCII = 1). На каждый запрос контроллер высылает 6 байт (2 байта от одного датчика и 4 байта от другого). Соответственно, интерфейс должен принимать 6 байт контроллера. В основном, так и происходит, но в отдельные моменты количество принимаемых байт не равно и не кратно 6, в эти же моменты принимаемые сигналы имеют выбросы — искажения, например, как показано на Рисунок 2.
Измерение диэлектрической проницаемости подложек
Существует постоянная потребность в точном измерении магнитных и диэлектрических свойств твердых материалов. Разработано множество методов измерения диэлектрической проницаемости. Эти методы включают методы свободного пространства, методы коаксиального зонда с открытым концом, объемные резонаторы и другие. Одним из популярных является волноводный метод, в котором внутри волновода помещается образец материала, измеряются S-параметры, а затем обрабатываются результаты по различным алгоритмам.
Цель статья состоит в том, чтобы рассмотреть и оценить три различных метода определения диэлектрической проницаемости на микрополосковых линиях.
LabView: былое и думы
Как полагается, сначала отмазка: все совпадения случайны и ни одно животное не пострадало.
Больше 20 лет назад я попал в Финляндию. Случилось это почти как по приколу.
Жил я, переезжая из одного городка в другой, около Иркутска. В 90-е работы по специальности не было. Ходили слухи, что в Москве и Питере работу можно было найти, но переехать туда реальным не выглядело — прописку никто не отменял, проблем для переезда с семьей было выше крыши.
Использование кода MATLAB в проектах LabVIEW NXG
Предположим, существует некий проект, где перед двумя разработчиками стоит задача расчёта/сбора каких-либо данных, а также их грамотной визуализации. При этом, один из разработчиков хорошо разбирается в матанализе или физике и имеет представление о том, как эта задача может решаться, а также дружит с MATLAB. Другой же разработчик, напротив, знает, как правильно интерпретировать набор данных и представить наглядный анимированный график, а также дружит с LabVIEW. Для подобных задач существует инструмент "Interface for MATLAB" в LabVIEW NXG, который позволяет обращаться к синтаксису MATLAB и совмещать преимущества графического и текстового языков программирования. Именно этот инструмент будет рассмотрен в данной статье.
LabVIEW NXG — простые типы данных и приведение типов
Это третья статья из цикла о LabVIEW NXG, в которой мы рассмотрим простые типы данных и несложные преобразования между ними.
Система типов LabVIEW весьма похожа на "классические" языки программирования. В данной статье мы рассмотрим базовые типы — численные, булевские и строки (хотя формально строки не относятся к простым скалярным типам).
Простой Web-доступ к VI приложениям LabVIEW в PHP через ActiveX Server
LabVIEW NXG — Основы работы с Передней Панелью — Контролы и Индикаторы
Это вторая статья-туториал по LabVIEW NXG, в которой мы рассмотрим основы работы с передней панелью (Front Panel).
Представим себе, что мы оказались в Америке, в отеле установлен кондиционер, но регулятор температуры там снабжён шкалой в градусах Фаренгейта. Мы хотим выставить комфортные двадцать градусов, но сколько это будет по шкале Фаренгейта? Вот и посчитаем это в LabVIEW NXG. Мы всё ещё на очень базовом уровне — под катом будет много слов о простом (чтобы в дальнейшем можно было рассказывать просто о сложном)
LabVIEW NXG 5.0 — Основы и Блок-Диаграмма
Это первая статья из небольшого цикла о графическом языке программирования G, который используется в LabVIEW. Язык этот пока не очень популярен — по индексу TIOBE на май 2020 года LabVIEW находится на сороковом месте аккурат между Julia и Haskell. Выпуск LabVIEW Community Edition даёт возможность значительно расширить аудиторию пользователей (раньше можно было пользоваться только триальной версией, а по истечении 45-и дней учиться "вприглядку").
Что ж, как говорили великие Керниган и Ритчи — "единственный способ научиться новому языку программирования — это начать на нём программировать". Этим и займёмся.
В первой части мы разберём основные элементы среды разработки, и нарисуем на блок-диаграмме наш первый "Hello, World!"
Статья-туториал рассчитана на тех, кто видит LabVIEW впервые. Под катом полсотни картинок примерно на семь мегабайт.
Установка и активация LabVIEW Community Edition
После публикации анонса о выпуске "Community Edition" версий LabVIEW в комментариях и на форумах были замечены отчёты о неудачной активации этих продуктов. Система активации в чём-то отдалённо похожа на Visual Studio Community, но есть тонкости, о которых и хотелось бы рассказать.
Вкратце — основная проблема заключается в том, что если создать аккаунт после скачивания и установки (причём там есть опция прямо в инсталляторе), то активация завершается неудачно, поскольку лицензия в этот момент отсутствует.
Ниже будет дано полное пошаговое описание процесса инсталляции и активации LabVIEW Community Edition — примерно полсотни скриншотов.
Ближайшие события
Компания National Instruments выпустила бесплатные LabVIEW 2020 и NXG 5.0 Community Edition
В конце апреля произошло событие, которого так ждали поклонники рисования кода мышкой: компания National Instruments наконец-то выпустила бесплатную редакцию своей системы графического программирования — LabVIEW Community Edition.
Название перекликается с Visual Studio Community, но в отличие от Студии среда разработки LabVIEW абсолютно бесплатна лишь для некоммерческих проектов, и для обучения в школах (для ВУЗов потребуется Academic Site License).
Ну а теперь все желающие могут приобщиться к увлекательному миру графического программирования, скачать LabVIEW и играть с ней так долго, насколько хватит желания (и терпения).
Пишем загрузчик ПЛИС в LabVIEW. Часть 2
Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
Пишем загрузчик ПЛИС в LabVIEW. Часть 1
В первой статье мы обкатали алгоритм загрузки на старом добром Си, во второй статье разобрались, как в LabVIEW можно организовать программу и реализовать простой интерфейс пользователя. В этот раз мы познакомимся с новыми приемами работы в LabVIEW, разберем особенности обработки ошибок и завершим проект: реализуем протокол загрузки файла конфигурации в ПЛИС.
Пишем загрузчик ПЛИС в LabVIEW. Часть 1
У большинства "нормальных" программистов, мягко говоря, неоднозначное отношение к технологии LabVIEW. Тут спорить можно долго и безрезультатно. Ситуацию усугубляет то, что в сети масса примеров программ на LabVIEW, но все они ориентированы на новичка и сводятся к "ой, смотрите как все просто, соединил крутилку с индикатором, кручу ручку, меняется циферка", или в лучшем случае на график в цикле выводится случайное число или синус, все это сопровождается зубодробительным интерфейсом в виде гигантских тумблеров, крутилок и стрелочных индикаторов. Лично меня такой подход сознательного упрощения раздражает. В небольшом цикле статей я постараюсь познакомить читателя с процессом разработки прикладного ПО на LabVIEW. Для того, чтобы не уделять много времени предметной области, воспользуемся подробно описанным алгоритмом загрузки файла конфигурации в ПЛИС через FTDI в режиме MPSSE (Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE). В этой статье я покажу как реализовать такой же загрузчик ПЛИС, но на языке LabVIEW.
Система компенсации погрешности установки оптоволокна при его обработке лазерным излучением в процессе вращения
Раздел 1. Актуальность
В настоящее время эндовазальная лазерная коагуляция варикозных вен (ЭВЛК) является современным и эффективным методом лечения варикоза. В состав медицинских приборов для лазерной коагуляции варикозных вен входит волоконный инструмент (световод) с радиальным выходом излучения (рис 1), через который излучение непосредственно воздействует на биоткань. От конфигурации и качества обработки этого инструмента зависит эффективность и безопасность лечения.
Рис.1 Возможный рельеф световодного волокна: а) – модель заготовки, б) увеличенное изображение обработанной заготовки
Машинное зрение. Что это и как им пользоваться? Обработка изображений оптического источника
Программирование микрокомпьютера LEGO NXT Mindstorms 2.0. Введение
Исправляем Alt-Tab в LabView
Мало того, что LabView сдвигает все свои окна в начало Alt-Tab списка (больше так не делает никто: en.wikipedia.org/wiki/Alt-Tab), так еще, несмотря на активно используемую возможность переопределять иконки для vi файлов, в списке Alt-Tab вместо них – стройные ряды из логотипов LabView:
Некоторых такое поведение подталкивает к покупке второго монитора. Для них в значительной степени проблема этим и решается. Еще частично помогает интерфейс Windows Aero с его миниатюрами в меню Alt-Tab. Но вроде бы лежащее на поверхности решение – (а) сделать переключение такое же, как во всех остальных приложениях, и (б) выводить в списке иконки vi – стандартными средствами недостижимо.
Судя по тому, что началось это едва ли не с самой первой версии, а соответствующая «идея по улучшению» пылится на «форуме по обмену идеями» с 2010 года forums.ni.com/t5/LabVIEW-Idea-Exchange/Make-Alt-Tab-behaviour-consistent-with-other-applications/idi-p/1162219, просить об этом National Instruments бесполезно. Однако кое-что сделать всё-таки можно.
Вклад авторов
AndreyDmitriev 315.5DustyZebra 59.0Axelis 40.0Kvanto25 39.0RF_Pavel 36.0Shamrel 34.0existentiary 24.0MiGr 22.0alfatapok 17.0Chupakabra303 12.0