Получите серию изображений STEM с помощью метода прослушивателя событий - PullRequest
0 голосов
/ 28 октября 2018

В последнее время я пытаюсь подключить прослушиватель событий к отображению в реальном времени, чтобы автоматически получать серию изображений, и используется четная карта «data_value_changed».В режиме TEM все в порядке, и 3D-стек можно правильно получить.К сожалению, при применении этого к живому изображению STEM из DigiScan скрипт полностью провалился.Позже я только что понял, что в таком режиме изображение обновляется попиксельно при сканировании, а не по кадрам.Другая карта событий «data_changed» была дополнительно протестирована, но все равно закончилась сбоем.

С DM2.0 или более поздней версией, кажется, намного проще получить серию кастомизированных изображений STEM, так как управляющее устройство DigiScan можетбыть удобно доступным через сценарии.К сожалению, наш микроскоп довольно старый и только с установленным DM 1.5.

Существует ли какая-либо карта событий, отдельная для этой цели, или подход обработчика событий вообще не подходит?

Заранее спасибо

1 Ответ

0 голосов
/ 29 октября 2018

Подходит обработчик события изменения данных, но нет события для определенного кадра / завершенного события.

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

Таким образом, вам необходимо «отфильтровать» эти события - настолько быстро и максимально экономно, насколько это возможно.

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

Существует очень малая вероятность (- для отсканированных изображений -), что "новый" кадр имеет численно такое же значение , что и предыдущий кадр, поэтомув большинстве случаев это все, что вам нужно сделать.

Если вам этого недостаточно, вы можете посмотреть на более длительные - но также и более загруженные циклы ЦП - проверки, как при каждом вычислении логической карты изменений между "сейчас" и "буферизованным" и отслеживанием"последние изменения.Затем, если есть «перепрыгивание» к более раннему индексу, вы знаете, что ваше «буферизованное» последнее изображение действительно имеет полный кадр.(Обратите внимание, что вы всегда будете видеть обновление данных один раз в конце кадра. Следовательно, это будет работать.)

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

...