event-listener - 使用侦听器时查看哪个像素发生变化的最快方法
问题描述
我正在尝试使用 STEM 获取每个扫描像素的 EDS 光谱。我正在使用该EDSStartAcquisition( 2048, 10,fexposure*2, 1)
命令,并将以下简单的侦听器对象附加到所示的 1D 频谱图像中:
string messagemap = "data_value_changed:MyImageAction"
Class MyListenerClass1
{
String event_desc;
MyListenerClass1(Object self); //Result("\n");
~MyListenerClass1(Object self);// Result("\n");
Void MyImageAction(Object self, Number e_fl, Image Img)
{
ImageGetEventMap().DeconstructEventFlags( e_fl, event_desc )
Result(GetTime(1)+": Image message : " + event_desc + " 0x" + Binary(e_fl) + "\n" )
}
}
ListenerID1 = EDSIm.ImageAddEventListener( Listener1, messagemap)
由于速度是这里的问题,我想尝试 EDS 采集的连续模式。但是然后我需要听哪些计数属于每个扫描的像素。以下主题(如何全速获取获取的帧?-图像事件侦听器似乎没有在每个事件之后执行)展示了如何侦听图像的最后一个像素变化。但是,直接查看每个事件中 1D 频谱的哪一部分发生变化的最快方法是什么?无需遍历每一片...
提前致谢!
解决方案
图像的data_value_changed会在以下情况下触发: a) 释放图像锁(确保对内存进行单一访问的对象),或 b) 在代码中进行特定的更新调用。
因此,当获取累积 EDS 光谱时,整个阵列会“锁定”,然后修改(在一个或多个位置),然后“更新”。没有关于阵列被修改的位置的具体信息。
因此,找出频谱变化位置的唯一方法是将“之前”的副本与“现在”的副本进行比较 - 这不是超级有效的。
推荐阅读
- ios - 如何在单个 UIView 中添加 3 种背景颜色?
- ruby - Rubocop 缩进配置
- python - 小数字段的选择
- angular - Angular6 - HttpClient在使用socket.io-client时缓存请求
- javascript - 我可以将 Angular toPromise 方法的 http 客户端转换为异步并等待吗?
- performance - 从内部表中填充范围表而不重复
- javascript - amazon-cognito-identity-js 刷新令牌过期处理
- ckeditor - 在laravel中将图像上传到ckeditor服务器响应不正确
- wordpress - Wordpress Ninija 表单重定向
- uwp - NavigationView 中的项目选择